Files
aee-arcade/source/core/resources/resource_helper.hpp
T
JailDesigner 4da05b3d76 chore(release): v0.21.0 — empaquetat de recursos (AE26) i neteja de fonts
- 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/`.
2026-04-23 08:51:21 +02:00

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