- Nou format de pack AE26 v1 (XOR + djb2), eina `pack_resources`, regeneració automàtica de `build/resources.pack` a cada build. - `Resource::Helper` amb init/shutdown, fallback a disc només en Debug (apunta al source tree); Release exigeix pack present. - Callers de YAML migrats a `loadFile`+deserialize des de buffer. - Arrel neta: el pack viu a `build/`, eliminat `sync_data`. - Placeholder font -> `ari-w9500-condensed-display`; esborrades variants bold/condensed no usades a `data/fonts/`.
39 lines
1.7 KiB
C++
39 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace Resource::Helper {
|
|
|
|
// Inicialitza el sistema de recursos. Carrega el pack des de `pack_file`
|
|
// i decideix si `loadFile` pot caure a disc quan un recurs no és al pack.
|
|
// En Release el pack és obligatori: passar `enable_fallback=false` fa
|
|
// que `initializeResourceSystem` retorne false si no s'ha pogut carregar.
|
|
auto initializeResourceSystem(const std::string& pack_file, bool enable_fallback) -> bool;
|
|
|
|
// Allibera el pack carregat a memòria.
|
|
void shutdownResourceSystem();
|
|
|
|
// True si el sistema es va inicialitzar amb un pack vàlid.
|
|
[[nodiscard]] auto hasPack() -> bool;
|
|
|
|
// Estableix el prefix des d'on es resolen les rutes quan el fallback
|
|
// llig de disc. En Debug apunta al source tree (`${CMAKE_SOURCE_DIR}/`)
|
|
// perquè editar YAML/GIF dins `data/` es vegi reflectit sense re-packejar.
|
|
// En Release el fallback està desactivat i aquest camí no es fa servir.
|
|
void setDataRoot(const std::string& absolute_path);
|
|
|
|
// Resol una ruta relativa contra el data root. Si ja és absoluta
|
|
// (comença per '/') la retorna sense modificar. S'usa per a rutes que
|
|
// NO passen pel pack (p.ex. fitxers de config dins system_folder_).
|
|
[[nodiscard]] auto resolve(const std::string& filepath) -> std::string;
|
|
|
|
// Carrega un recurs pel seu camí relatiu (p.ex. "fonts/hud.gif",
|
|
// "input/keys.yaml"). Prova primer el pack; si no hi és i el fallback
|
|
// està actiu, cau a disc (data root + ruta). Retorna vector buit si
|
|
// no el troba.
|
|
auto loadFile(const std::string& filepath) -> std::vector<std::uint8_t>;
|
|
|
|
} // namespace Resource::Helper
|