config/ dins del pack: assets, params, stages, pools, formations

This commit is contained in:
2026-05-17 08:38:46 +02:00
parent a39cd45bf1
commit 0d14e10de5
18 changed files with 95 additions and 2282 deletions
+11 -5
View File
@@ -141,7 +141,9 @@ void Director::init() {
loadAssets(); // Crea el índice de archivos
Input::init(Asset::get()->getPath("gamecontrollerdb.txt"), Asset::get()->getPath("controllers.json")); // Carga configuración de controles
// gamecontrollerdb.txt no pot anar al pack (SDL_AddGamepadMappingsFromFile només llegeix del FS).
// Sempre viu al costat del binari, fora del índex d'assets.
Input::init(executable_path_ + "gamecontrollerdb.txt", Asset::get()->getPath("controllers.json")); // Carga configuración de controles
Options::setConfigFile(Asset::get()->getPath("config.yaml")); // Establece el fichero de configuración
Options::setControllersFile(Asset::get()->getPath("controllers.json")); // Establece el fichero de configuración de mandos
@@ -256,7 +258,7 @@ void Director::loadScoreFile() {
#endif
}
// Carga el indice de ficheros desde un fichero
// Carga el indice de ficheros desde el pack (o filesystem como fallback)
void Director::loadAssets() {
#ifdef MACOS_BUNDLE
const std::string PREFIX = "/../Resources";
@@ -264,9 +266,13 @@ void Director::loadAssets() {
const std::string PREFIX;
#endif
// Cargar la configuración de assets (también aplicar el prefijo al archivo de configuración)
std::string config_path = executable_path_ + PREFIX + "/config/assets.txt";
Asset::get()->loadFromFile(config_path, PREFIX, system_folder_);
// El índice ahora vive dins el pack a "config/assets.txt" (ResourceHelper li trau el "data/" prefix).
// ResourceHelper::loadFile fa fallback automàtic al filesystem si el pack no està o no conté el fitxer.
auto buffer = ResourceHelper::loadFile("/data/config/assets.txt");
if (buffer.empty()) {
throw std::runtime_error("No s'ha pogut carregar l'índex d'assets (data/config/assets.txt)");
}
Asset::get()->loadFromBuffer(buffer, PREFIX, system_folder_);
// Si falta algun fichero, sale del programa
if (!Asset::get()->check()) {