diff --git a/data/lang/ba_BA.json b/data/lang/ba_BA.json index ddbf31f..e9f942f 100644 --- a/data/lang/ba_BA.json +++ b/data/lang/ba_BA.json @@ -61,6 +61,8 @@ "[NOTIFICATIONS] 14": "Sincronisme vertical", "[NOTIFICATIONS] 15": "Reiniciar", + "[RESOURCE] LOADING": "Carregant", + "[SERVICE_MENU] TITLE": "Menu de servei", "[SERVICE_MENU] RESET": "Reiniciar", "[SERVICE_MENU] QUIT": "Eixir del joc", diff --git a/data/lang/en_UK.json b/data/lang/en_UK.json index 2133a6a..9635a57 100644 --- a/data/lang/en_UK.json +++ b/data/lang/en_UK.json @@ -61,6 +61,8 @@ "[NOTIFICATIONS] 14": "Vertical Sync", "[NOTIFICATIONS] 15": "Reset", + "[RESOURCE] LOADING": "Loading", + "[SERVICE_MENU] TITLE": "Service Menu", "[SERVICE_MENU] RESET": "Reset", "[SERVICE_MENU] QUIT": "Quit Game", diff --git a/data/lang/es_ES.json b/data/lang/es_ES.json index b653b06..d396c5b 100644 --- a/data/lang/es_ES.json +++ b/data/lang/es_ES.json @@ -61,6 +61,8 @@ "[NOTIFICATIONS] 14": "Sincronismo vertical", "[NOTIFICATIONS] 15": "Reiniciar", + "[RESOURCE] LOADING": "Cargando", + "[SERVICE_MENU] TITLE": "Menu de servicio", "[SERVICE_MENU] RESET": "Reiniciar", "[SERVICE_MENU] QUIT": "Salir del juego", diff --git a/source/hiscore_table.cpp b/source/hiscore_table.cpp index 636269a..264c45a 100644 --- a/source/hiscore_table.cpp +++ b/source/hiscore_table.cpp @@ -51,7 +51,7 @@ HiScoreTable::HiScoreTable() HiScoreTable::~HiScoreTable() { SDL_DestroyTexture(backbuffer_); - options.game.clear_last_hi_score_entries(); + options.game.clearLastHiScoreEntries(); } // Actualiza las variables diff --git a/source/options.cpp b/source/options.cpp index 500938e..e7ab644 100644 --- a/source/options.cpp +++ b/source/options.cpp @@ -39,7 +39,8 @@ void initOptions() options.game.difficulty = GameDifficulty::NORMAL; options.game.language = lang::Code::VALENCIAN; options.game.autofire = true; - options.game.clear_last_hi_score_entries(); + options.game.shutdown_enabled = false; + options.game.clearLastHiScoreEntries(); // Opciones de control options.controllers.clear(); @@ -155,6 +156,7 @@ bool saveOptionsFile(std::string file_path) file << "game.language=" << static_cast(options.game.language) << "\n"; file << "game.difficulty=" << static_cast(options.game.difficulty) << "\n"; file << "game.autofire=" << boolToString(options.game.autofire) << "\n"; + file << "game.shutdown_enabled=" << boolToString(options.game.shutdown_enabled) << "\n"; // Opciones de mandos file << "\n\n## CONTROLLERS\n"; @@ -255,6 +257,10 @@ bool setOptions(const std::string &var, const std::string &value) { options.game.autofire = stringToBool(value); } + else if (var == "game.shutdown_enabled") + { + options.game.shutdown_enabled = stringToBool(value); + } // Opciones de mandos else if (var == "controller.0.name") @@ -379,10 +385,10 @@ int getPlayerWhoUsesKeyboard() // Aplica los cambios pendientes copiando los valores a sus variables void applyPendingChanges() { - if (options.pending_changes.has_pending_changes) - { - options.game.language = options.pending_changes.new_language; - options.game.difficulty = options.pending_changes.new_difficulty; - options.pending_changes.has_pending_changes = false; - } + if (options.pending_changes.has_pending_changes) + { + options.game.language = options.pending_changes.new_language; + options.game.difficulty = options.pending_changes.new_difficulty; + options.pending_changes.has_pending_changes = false; + } } diff --git a/source/options.h b/source/options.h index 6b76d9a..2d94977 100644 --- a/source/options.h +++ b/source/options.h @@ -68,11 +68,12 @@ struct GameOptions GameDifficulty difficulty; // Dificultad del juego lang::Code language; // Idioma usado en el juego bool autofire; // Indicador de autofire + bool shutdown_enabled; // Especifica si se puede apagar el sistema std::vector hi_score_table; // Tabla de mejores puntuaciones std::vector last_hi_score_entry = {-1, -1}; // Últimas posiciones de entrada en la tabla // Reinicia las últimas entradas de puntuación - void clear_last_hi_score_entries() + void clearLastHiScoreEntries() { last_hi_score_entry[0] = -1; last_hi_score_entry[1] = -1; diff --git a/source/resource.cpp b/source/resource.cpp index 2a79fc7..db1c6a4 100644 --- a/source/resource.cpp +++ b/source/resource.cpp @@ -450,7 +450,7 @@ void Resource::renderProgress() loading_text_->write( loading_wired_rect_.x, loading_wired_rect_.y - 9, - "Loading : " + loading_resource_name_ + lang::getText("[RESOURCE] LOADING") + " : " + loading_resource_name_ ); // Renderiza el frame en pantalla diff --git a/source/service_menu.cpp b/source/service_menu.cpp index 2b9f774..76ddac6 100644 --- a/source/service_menu.cpp +++ b/source/service_menu.cpp @@ -327,7 +327,8 @@ void ServiceMenu::initializeOptions() // System options_.emplace_back(lang::getText("[SERVICE_MENU] RESET"), SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE); options_.emplace_back(lang::getText("[SERVICE_MENU] QUIT"), SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE); - options_.emplace_back(lang::getText("[SERVICE_MENU] SHUTDOWN"), SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE); + if (options.game.shutdown_enabled) + options_.emplace_back(lang::getText("[SERVICE_MENU] SHUTDOWN"), SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE); // Menu principal options_.emplace_back(lang::getText("[SERVICE_MENU] VIDEO"), SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::VIDEO); diff --git a/source/utils.cpp b/source/utils.cpp index 140d01b..29c993b 100644 --- a/source/utils.cpp +++ b/source/utils.cpp @@ -117,7 +117,8 @@ bool checkCollision(const SDL_FPoint &p, const SDL_FRect &r) // Convierte una cadena en un valor booleano bool stringToBool(const std::string &str) { - return str == "true"; + std::string s = trim(toLower(str)); + return (s == "true" || s == "1" || s == "yes" || s == "on"); } // Convierte un valor booleano en una cadena