refactor(data): reorganitza data/ i centralitza paths a defaults.hpp

This commit is contained in:
JailDesigner committed 2026-05-07 19:28:28 +02:00
1 parent 9949096fba
commit 05465b791e
54 files changed
+368 -304

No files matched your search

+61 -8
View File
@@ -107,7 +107,7 @@ namespace Defaults {
} // namespace Player
// Fallbacks del tema d'UI: índexs de paleta, timings (ms) i fonts.
// El tema en viu és a data/ui.yaml, carregat per UiConfig a
// El tema en viu és a data/config/ui.yaml, carregat per UiConfig a
// l'arrencada; aquests valors només s'apliquen si el fitxer falta o
// li manca alguna clau. Ací només cal tocar-los si es vol canviar el
// fallback "de fàbrica".
@@ -251,14 +251,14 @@ namespace Defaults {
// Sons del menú de servei. SELECT acompanya navegació (amunt/avall)
// i back; ACCEPT acompanya modificació d'opció (esq/dret/retorn).
// Els fitxers viuen a `data/sounds/`; només es referencia el nom.
// Els fitxers viuen a `data/audio/sounds/`; només es referencia el nom.
constexpr const char* MENU_SELECT_SOUND = "menu_select.wav";
constexpr const char* MENU_ACCEPT_SOUND = "menu_accept.wav";
// So disparat quan un jugador prem START a la TITLE (tant la
// primera pulsació que entra a STARTING com la del segon
// jugador que reseteja a BOTH dins de la finestra). Fitxer a
// `data/sounds/`.
// `data/audio/sounds/`.
constexpr const char* PLAYER_START_SOUND = "player_start.wav";
// So curt de "soroll/scratch" disparat al constructor de LogoScene
@@ -447,7 +447,7 @@ namespace Defaults {
// Independent de la piràmide concreta — quan un dia hi haja diferents
// ritmes per piràmide, aquest YAML pot adoptar variants per nivell.
namespace GameScene {
constexpr const char* CONFIG_YAML = "data/scenes/game.yaml";
constexpr const char* GAME_YAML = "data/scenes/game/game.yaml";
} // namespace GameScene
// Rutes d'assets per piràmide. Centralitzats ací perquè `GameScene` no
@@ -460,14 +460,67 @@ namespace Defaults {
// hardcodejar el path d'una sala concreta — pregunteu-li al
// `LevelManager` (`currentPath()`) i deixeu que ell decidisca.
constexpr const char* LEVELS_YAML = "data/maps/levels.yaml";
constexpr const char* PLAYER_SPRITE = "data/player/sam.gif";
constexpr const char* PLAYER_YAML = "data/player/sam.yaml";
constexpr const char* PLAYER_SAM_GIF = "data/entities/player/sam.gif";
constexpr const char* PLAYER_SAM_YAML = "data/entities/player/sam.yaml";
// Personatge del segon jugador. Clonat de sam amb repaletat (roig→blau);
// la geometria del sprite i les animacions coincideixen amb les de P1,
// així que Player::loadFrom només cal cridar-la amb un dels dos YAMLs.
constexpr const char* PLAYER_SPRITE_P2 = "data/player/morcus.gif";
constexpr const char* PLAYER_YAML_P2 = "data/player/morcus.yaml";
constexpr const char* PLAYER_MORCUS_GIF = "data/entities/player/morcus.gif";
constexpr const char* PLAYER_MORCUS_YAML = "data/entities/player/morcus.yaml";
constexpr const char* MUSIC_TRACK = "playing.ogg";
} // namespace Pyramid
// Rutes a recursos sota `data/`. Centralitzades ací perquè cap `.cpp`
// tinga literals "data/..." hardcoded: si demà es reorganitza
// l'arbre de `data/`, només cal tocar aquest namespace.
//
// Convenció: les constants que acaben en `_DIR` són prefixos (acaben
// en `/`) pensats per concatenar amb una clau coneguda en runtime
// (p.ex. nom de fitxer carregat des d'un YAML). La resta són rutes
// completes a un fitxer concret.
namespace Paths {
// Arrel de tots els recursos del joc. La fan servir el carregador de
// packs (per a stripping al lookup) i qualsevol consumidor que
// necessite saber la prefix lògica abans del path real.
constexpr const char* DATA_ROOT = "data/";
// Directoris (per concatenació amb claus dinàmiques).
constexpr const char* AUDIO_MUSIC_DIR = "data/audio/music/";
constexpr const char* AUDIO_SOUNDS_DIR = "data/audio/sounds/";
constexpr const char* ENTITIES_DIR = "data/entities/";
constexpr const char* PLAYER_DIR = "data/entities/player/";
// Configuració global (tema, sons, input, editor).
constexpr const char* UI_YAML = "data/config/ui.yaml";
constexpr const char* SOUNDS_YAML = "data/config/sounds.yaml";
constexpr const char* INPUT_YAML = "data/config/input.yaml";
constexpr const char* EDITOR_YAML = "data/config/editor.yaml";
constexpr const char* UI_PALETTE = "data/palettes/uzebox.pal";
// Configuració d'escenes (yaml). El de la GameScene viu a
// `Defaults::GameScene::GAME_YAML` per coherència amb la resta de
// valors d'aquella escena.
constexpr const char* LOGO_YAML = "data/scenes/logo/logo.yaml";
constexpr const char* TITLE_YAML = "data/scenes/title/title.yaml";
// Música pre-carregada pel Director a l'arrencada.
constexpr const char* MUSIC_TITLE = "data/audio/music/title.ogg";
constexpr const char* MUSIC_PLAYING = "data/audio/music/playing.ogg";
constexpr const char* MUSIC_ROOM_INTRO = "data/audio/music/room_intro.ogg";
constexpr const char* MUSIC_ROOM_OUTRO = "data/audio/music/room_outro.ogg";
// Gràfics de logo / title pre-carregats pel Director.
constexpr const char* LOGO_MINI_GIF = "data/scenes/logo/logo_jailgames_mini.gif";
constexpr const char* LOGO_FULL_GIF = "data/scenes/logo/logo_jailgames.gif";
constexpr const char* TITLE_GAME_LOGO_GIF = "data/scenes/title/game_logo.gif";
constexpr const char* TITLE_BG_GIF = "data/scenes/title/title_bg.gif";
// Entitats pre-carregades a GameScene (dust + 4 direccions de whip).
constexpr const char* DUST_GIF = "data/entities/dust/dust.gif";
constexpr const char* WHIP_EAST_GIF = "data/entities/whip_attack/whip_east.gif";
constexpr const char* WHIP_WEST_GIF = "data/entities/whip_attack/whip_west.gif";
constexpr const char* WHIP_NORTH_GIF = "data/entities/whip_attack/whip_north.gif";
constexpr const char* WHIP_SOUTH_GIF = "data/entities/whip_attack/whip_south.gif";
} // namespace Paths
} // namespace Defaults