opció de preset al service menu (params_file → params_preset)

Defaults::Settings::PARAMS_FILE passa a PARAMS_PRESET (id intern:
classic/arcade/red); director concatena .txt al carregar. Nou
ListOption "GAME_PRESET" al service menu amb les tres opcions
localitzades (cal reinici per aplicar). Validació al parser del YAML:
si el preset desat no existeix, cau al default.
This commit is contained in:
2026-05-17 09:43:30 +02:00
parent 0d14e10de5
commit e58b7d36fb
15 changed files with 82 additions and 19 deletions
+14 -4
View File
@@ -126,7 +126,7 @@ namespace Options {
std::vector<int> glowing_entries = {ManageHiScoreTable::NO_ENTRY, ManageHiScoreTable::NO_ENTRY}; // Últimas posiciones de entrada en la tabla
std::string config_file; // Ruta al fichero donde guardar la configuración y las opciones del juego
std::string controllers_file; // Ruta al fichero con las configuraciones de los mandos
std::string params_file = Defaults::Settings::PARAMS_FILE; // Ruta al fichero de parámetros del juego
std::string params_preset = Defaults::Settings::PARAMS_PRESET; // Identificador del preset de parámetros (classic/arcade/red)
// Reinicia las últimas entradas de puntuación
void clearLastHiScoreEntries() {
@@ -329,11 +329,21 @@ namespace Options {
};
struct PendingChanges {
Lang::Code new_language = Lang::Code::VALENCIAN; // Idioma en espera de aplicar
Difficulty::Code new_difficulty = Difficulty::Code::NORMAL; // Dificultad en espera de aplicar
bool has_pending_changes = false; // Indica si hay cambios pendientes
Lang::Code new_language = Lang::Code::VALENCIAN; // Idioma en espera de aplicar
Difficulty::Code new_difficulty = Difficulty::Code::NORMAL; // Dificultad en espera de aplicar
std::string new_params_preset = Defaults::Settings::PARAMS_PRESET; // Preset de parámetros en espera de aplicar (requiere reinicio)
bool has_pending_changes = false; // Indica si hay cambios pendientes
};
// Lista d'identificadors de presets de paràmetres disponibles. Cada nom es correspon
// amb el .txt al pack (data/config/<id>.txt). L'ordre marca el cicle al service menu.
inline const std::vector<std::string> PARAMS_PRESETS = {"classic", "arcade", "red"};
// Tradueix l'identificador intern a la cadena visible (localitzada).
auto getParamsPresetDisplayName(const std::string& preset_id) -> std::string;
// Tradueix la cadena visible al seu identificador intern.
auto getParamsPresetIdFromDisplay(const std::string& display_name) -> std::string;
// --- Variables ---
extern Window window; // Opciones de la ventana
extern Settings settings; // Opciones del juego