diff --git a/data/lang/ba_BA.json b/data/lang/ba_BA.json index 610e4f1..bcbbb09 100644 --- a/data/lang/ba_BA.json +++ b/data/lang/ba_BA.json @@ -53,13 +53,33 @@ "[NOTIFICATIONS] 06": "activat", "[NOTIFICATIONS] 07": "desactivat", "[NOTIFICATIONS] 08": "Dispar automatic", - "[NOTIFICATIONS] 09": "Zoom de finestra", + "[NOTIFICATIONS] 09": "Tamany de la finestra", "[NOTIFICATIONS] 10": "Mode finestra", "[NOTIFICATIONS] 11": "Mode pantalla completa", "[NOTIFICATIONS] 12": "Mode d'escalat sencer", "[NOTIFICATIONS] 13": "Filtre", "[NOTIFICATIONS] 14": "Sincronisme vertical", "[NOTIFICATIONS] 15": "Reiniciar", + + "[SERVICE_MENU] TITLE": "Menu de servei", + "[SERVICE_MENU] RESET": "Reiniciar", + "[SERVICE_MENU] QUIT": "Eixir del joc", + "[SERVICE_MENU] SHUTDOWN": "Apagar el sistema", + "[SERVICE_MENU] FULLSCREEN": "Pantalla completa", + "[SERVICE_MENU] WINDOW_SIZE": "Tamany de la finestra", + "[SERVICE_MENU] SHADERS": "Filtre", + "[SERVICE_MENU] VSYNC": "Sincronisme vertical", + "[SERVICE_MENU] INTEGER_SCALE": "Escalat sencer", + "[SERVICE_MENU] MAIN_VOLUME": "Volumen general", + "[SERVICE_MENU] MUSIC_VOLUME": "Volumen de la musica", + "[SERVICE_MENU] SFX_VOLUME": "Volumen dels sons", + "[SERVICE_MENU] AUTOFIRE": "Dispar automatic", + "[SERVICE_MENU] VIDEO": "Video", + "[SERVICE_MENU] AUDIO": "Audio", + "[SERVICE_MENU] GAME": "Joc", + "[SERVICE_MENU] SYSTEM": "Sistema", + "[SERVICE_MENU] ON": "Activat", + "[SERVICE_MENU] OFF": "Desactivat", "[SCOREBOARD] 1": "Jugador 1", "[SCOREBOARD] 2": "Jugador 2", diff --git a/data/lang/en_UK.json b/data/lang/en_UK.json index 0ed9fdf..5e84c6a 100644 --- a/data/lang/en_UK.json +++ b/data/lang/en_UK.json @@ -60,6 +60,26 @@ "[NOTIFICATIONS] 13": "Filter", "[NOTIFICATIONS] 14": "Vertical Sync", "[NOTIFICATIONS] 15": "Reset", + + "[SERVICE_MENU] TITLE": "Service Menu", + "[SERVICE_MENU] RESET": "Reset", + "[SERVICE_MENU] QUIT": "Quit Game", + "[SERVICE_MENU] SHUTDOWN": "Shutdown System", + "[SERVICE_MENU] FULLSCREEN": "Fullscreen", + "[SERVICE_MENU] WINDOW_SIZE": "Window Size", + "[SERVICE_MENU] SHADERS": "Shaders", + "[SERVICE_MENU] VSYNC": "V-Sync", + "[SERVICE_MENU] INTEGER_SCALE": "Integer Scale", + "[SERVICE_MENU] MAIN_VOLUME": "Main Volume", + "[SERVICE_MENU] MUSIC_VOLUME": "Music Volume", + "[SERVICE_MENU] SFX_VOLUME": "Sound Volume", + "[SERVICE_MENU] AUTOFIRE": "Autofire", + "[SERVICE_MENU] VIDEO": "Video", + "[SERVICE_MENU] AUDIO": "Audio", + "[SERVICE_MENU] GAME": "Game", + "[SERVICE_MENU] SYSTEM": "System", + "[SERVICE_MENU] ON": "On", + "[SERVICE_MENU] OFF": "Off", "[SCOREBOARD] 1": "Player 1", "[SCOREBOARD] 2": "Player 2", diff --git a/data/lang/es_ES.json b/data/lang/es_ES.json index d87bbf7..2b89737 100644 --- a/data/lang/es_ES.json +++ b/data/lang/es_ES.json @@ -61,6 +61,26 @@ "[NOTIFICATIONS] 14": "Sincronismo vertical", "[NOTIFICATIONS] 15": "Reiniciar", + "[SERVICE_MENU] TITLE": "Menu de servicio", + "[SERVICE_MENU] RESET": "Reiniciar", + "[SERVICE_MENU] QUIT": "Salir del juego", + "[SERVICE_MENU] SHUTDOWN": "Apagar el sistema", + "[SERVICE_MENU] FULLSCREEN": "Pantalla completa", + "[SERVICE_MENU] WINDOW_SIZE": "Zoom de ventana", + "[SERVICE_MENU] SHADERS": "Filtro", + "[SERVICE_MENU] VSYNC": "Sincronismo vertical", + "[SERVICE_MENU] INTEGER_SCALE": "Escalado entero", + "[SERVICE_MENU] MAIN_VOLUME": "Volumen general", + "[SERVICE_MENU] MUSIC_VOLUME": "Volumen de la musica", + "[SERVICE_MENU] SFX_VOLUME": "Volumen de los efectos", + "[SERVICE_MENU] AUTOFIRE": "Disparo automatico", + "[SERVICE_MENU] VIDEO": "Video", + "[SERVICE_MENU] AUDIO": "Audio", + "[SERVICE_MENU] GAME": "Juego", + "[SERVICE_MENU] SYSTEM": "Sistema", + "[SERVICE_MENU] ON": "Activado", + "[SERVICE_MENU] OFF": "Desactivado", + "[SCOREBOARD] 1": "Jugador 1", "[SCOREBOARD] 2": "Jugador 2", "[SCOREBOARD] 3": "Multiplicador", diff --git a/source/game.cpp b/source/game.cpp index e0494e3..c915131 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -1645,8 +1645,8 @@ void Game::initDemo(int player_id) Audio::get()->disableSound(); // Configura los marcadores - scoreboard_->setMode([SCOREBOARD] LEFT_PANEL, ScoreboardMode::DEMO); - scoreboard_->setMode([SCOREBOARD] RIGHT_PANEL, ScoreboardMode::DEMO); + scoreboard_->setMode(SCOREBOARD_LEFT_PANEL, ScoreboardMode::DEMO); + scoreboard_->setMode(SCOREBOARD_RIGHT_PANEL, ScoreboardMode::DEMO); } // Modo grabar demo @@ -1672,7 +1672,7 @@ void Game::setTotalPower() void Game::initScoreboard() { scoreboard_->setPos({param.scoreboard.x, param.scoreboard.y, param.scoreboard.w, param.scoreboard.h}); - scoreboard_->setMode([SCOREBOARD] CENTER_PANEL, ScoreboardMode::STAGE_INFO); + scoreboard_->setMode(SCOREBOARD_CENTER_PANEL, ScoreboardMode::STAGE_INFO); for (const auto &player : players_) { scoreboard_->setName(player->getScoreBoardPanel(), player->getName()); @@ -1693,7 +1693,7 @@ void Game::initDifficultyVars() { balloon_manager_->setDefaultBalloonSpeed(BALLOON_SPEED[0]); difficulty_score_multiplier_ = 0.5f; - scoreboard_->setColor([SCOREBOARD] EASY_COLOR); + scoreboard_->setColor(SCOREBOARD_EASY_COLOR); break; } @@ -1701,7 +1701,7 @@ void Game::initDifficultyVars() { balloon_manager_->setDefaultBalloonSpeed(BALLOON_SPEED[0]); difficulty_score_multiplier_ = 1.0f; - scoreboard_->setColor([SCOREBOARD] NORMAL_COLOR); + scoreboard_->setColor(SCOREBOARD_NORMAL_COLOR); break; } @@ -1709,7 +1709,7 @@ void Game::initDifficultyVars() { balloon_manager_->setDefaultBalloonSpeed(BALLOON_SPEED[4]); difficulty_score_multiplier_ = 1.5f; - scoreboard_->setColor([SCOREBOARD] HARD_COLOR); + scoreboard_->setColor(SCOREBOARD_HARD_COLOR); break; } @@ -1726,13 +1726,13 @@ void Game::initPlayers(int player_id) // Crea los dos jugadores const int y = param.game.play_area.rect.h - 30; players_.emplace_back(std::make_unique(1, param.game.play_area.first_quarter_x - 15, y, demo_.enabled, param.game.play_area.rect, player_textures_[0], player_animations_)); - players_.back()->setScoreBoardPanel([SCOREBOARD] LEFT_PANEL); - players_.back()->setName(lang::getText("[SCOREBOARD] 1")); + players_.back()->setScoreBoardPanel(SCOREBOARD_LEFT_PANEL); + players_.back()->setName(lang::getText("SCOREBOARD_1")); players_.back()->setController(getController(players_.back()->getId())); players_.emplace_back(std::make_unique(2, param.game.play_area.third_quarter_x - 15, y, demo_.enabled, param.game.play_area.rect, player_textures_[1], player_animations_)); - players_.back()->setScoreBoardPanel([SCOREBOARD] RIGHT_PANEL); - players_.back()->setName(lang::getText("[SCOREBOARD] 2")); + players_.back()->setScoreBoardPanel(SCOREBOARD_RIGHT_PANEL); + players_.back()->setName(lang::getText("SCOREBOARD_2")); players_.back()->setController(getController(players_.back()->getId())); // Activa el jugador que coincide con el "player_id" diff --git a/source/global_inputs.cpp b/source/global_inputs.cpp index 0f99438..d3193f0 100644 --- a/source/global_inputs.cpp +++ b/source/global_inputs.cpp @@ -155,7 +155,7 @@ namespace globalInputs case section::Name::INSTRUCTIONS: { section::name = section::Name::TITLE; - section::options = section::Options::[TITLE] PRESS_BUTTON_TO_PLAY; + section::options = section::Options::TITLE_1; section::attract_mode = section::AttractMode::TITLE_TO_DEMO; break; } diff --git a/source/instructions.cpp b/source/instructions.cpp index 8be155b..4697907 100644 --- a/source/instructions.cpp +++ b/source/instructions.cpp @@ -369,6 +369,6 @@ void Instructions::updateBackbuffer() if (all_lines_off_screen_) { section::name = section::Name::TITLE; - section::options = section::Options::[TITLE] PRESS_BUTTON_TO_PLAY; + section::options = section::Options::TITLE_1; } } \ No newline at end of file diff --git a/source/intro.cpp b/source/intro.cpp index 7dcab2b..2f711d7 100644 --- a/source/intro.cpp +++ b/source/intro.cpp @@ -515,7 +515,7 @@ void Intro::updatePostState() { Audio::get()->stopMusic(); section::name = section::Name::TITLE; - section::options = section::Options::[TITLE] PRESS_BUTTON_TO_PLAY; + section::options = section::Options::TITLE_1; } break; diff --git a/source/scoreboard.cpp b/source/scoreboard.cpp index 451d67e..7d21d0e 100644 --- a/source/scoreboard.cpp +++ b/source/scoreboard.cpp @@ -41,7 +41,7 @@ Scoreboard::Scoreboard() text_scoreboard_(Resource::get()->getText("8bithud")) { // Inicializa variables - for (int i = 0; i < [SCOREBOARD] MAX_PANELS; ++i) + for (int i = 0; i < SCOREBOARD_MAX_PANELS; ++i) { name_[i].clear(); record_name_[i].clear(); @@ -51,9 +51,9 @@ Scoreboard::Scoreboard() continue_counter_[i] = 0; } - panel_[[SCOREBOARD] LEFT_PANEL].mode = ScoreboardMode::SCORE; - panel_[[SCOREBOARD] RIGHT_PANEL].mode = ScoreboardMode::SCORE; - panel_[[SCOREBOARD] CENTER_PANEL].mode = ScoreboardMode::STAGE_INFO; + panel_[SCOREBOARD_LEFT_PANEL].mode = ScoreboardMode::SCORE; + panel_[SCOREBOARD_RIGHT_PANEL].mode = ScoreboardMode::SCORE; + panel_[SCOREBOARD_CENTER_PANEL].mode = ScoreboardMode::STAGE_INFO; // Recalcula las anclas de los elementos recalculateAnchors(); @@ -159,7 +159,7 @@ void Scoreboard::fillPanelTextures() auto temp = SDL_GetRenderTarget(renderer_); // Genera el contenido de cada panel_ - for (size_t i = 0; i < [SCOREBOARD] MAX_PANELS; ++i) + for (size_t i = 0; i < SCOREBOARD_MAX_PANELS; ++i) { // Cambia el destino del renderizador SDL_SetRenderTarget(renderer_, panel_texture_[i]); @@ -177,7 +177,7 @@ void Scoreboard::fillPanelTextures() text_scoreboard_->writeCentered(slot4_2_.x, slot4_2_.y, updateScoreText(score_[i])); // MULT - text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("[SCOREBOARD] 3")); + text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("SCOREBOARD_3")); text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y, "x" + std::to_string(mult_[i]).substr(0, 3)); break; } @@ -185,13 +185,13 @@ void Scoreboard::fillPanelTextures() case ScoreboardMode::DEMO: { // DEMO MODE - text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y + 4, lang::getText("[SCOREBOARD] 6")); + text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y + 4, lang::getText("SCOREBOARD_6")); // PRESS START TO PLAY if (time_counter_ % 10 < 8) { - text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y - 2, lang::getText("[SCOREBOARD] 8")); - text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y - 2, lang::getText("[SCOREBOARD] 9")); + text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y - 2, lang::getText("SCOREBOARD_8")); + text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y - 2, lang::getText("SCOREBOARD_9")); } break; } @@ -199,13 +199,13 @@ void Scoreboard::fillPanelTextures() case ScoreboardMode::WAITING: { // GAME OVER - text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y + 4, lang::getText("[SCOREBOARD] 7")); + text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y + 4, lang::getText("SCOREBOARD_7")); // PRESS START TO PLAY if (time_counter_ % 10 < 8) { - text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y - 2, lang::getText("[SCOREBOARD] 8")); - text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y - 2, lang::getText("[SCOREBOARD] 9")); + text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y - 2, lang::getText("SCOREBOARD_8")); + text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y - 2, lang::getText("SCOREBOARD_9")); } break; } @@ -213,13 +213,13 @@ void Scoreboard::fillPanelTextures() case ScoreboardMode::GAME_OVER: { // GAME OVER - text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y + 4, lang::getText("[SCOREBOARD] 7")); + text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y + 4, lang::getText("SCOREBOARD_7")); // PLEASE WAIT if (time_counter_ % 10 < 8) { - text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y - 2, lang::getText("[SCOREBOARD] 12")); - text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y - 2, lang::getText("[SCOREBOARD] 13")); + text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y - 2, lang::getText("SCOREBOARD_12")); + text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y - 2, lang::getText("SCOREBOARD_13")); } break; } @@ -227,7 +227,7 @@ void Scoreboard::fillPanelTextures() case ScoreboardMode::STAGE_INFO: { // STAGE - text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y, lang::getText("[SCOREBOARD] 5") + std::to_string(stage_)); + text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y, lang::getText("SCOREBOARD_5") + std::to_string(stage_)); // POWERMETER power_meter_sprite_->setSpriteClip(0, 0, 40, 7); @@ -236,7 +236,7 @@ void Scoreboard::fillPanelTextures() power_meter_sprite_->render(); // HI-SCORE - text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("[SCOREBOARD] 4")); + text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("SCOREBOARD_4")); const std::string name = hi_score_name_ == "" ? "" : hi_score_name_ + " - "; text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y, name + updateScoreText(hi_score_)); break; @@ -249,7 +249,7 @@ void Scoreboard::fillPanelTextures() text_scoreboard_->writeCentered(slot4_2_.x, slot4_2_.y, updateScoreText(score_[i])); // CONTINUE - text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("[SCOREBOARD] 10")); + text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("SCOREBOARD_10")); text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y, std::to_string(continue_counter_[i])); break; } @@ -262,7 +262,7 @@ void Scoreboard::fillPanelTextures() // ENTER NAME { - text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("[SCOREBOARD] 11")); + text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("SCOREBOARD_11")); SDL_FRect rect = {enter_name_pos_.x, enter_name_pos_.y, 5.0f, 7.0f}; // Recorre todos los slots de letras del nombre @@ -298,7 +298,7 @@ void Scoreboard::fillPanelTextures() text_scoreboard_->writeCentered(slot4_2_.x, slot4_2_.y, updateScoreText(score_[i])); // NAME - text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("[SCOREBOARD] 11")); + text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y, lang::getText("SCOREBOARD_11")); /* TEXTO CENTRADO */ // text_scoreboard_->writeDX(TEXT_CENTER | TEXT_COLOR, slot4_4_.x, slot4_4_.y, record_name_[i], 1, getColorLikeKnightRider(name_colors_, loop_counter_ / 5)); @@ -309,12 +309,12 @@ void Scoreboard::fillPanelTextures() case ScoreboardMode::GAME_COMPLETED: { // GAME OVER - text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y + 4, lang::getText("[SCOREBOARD] 7")); + text_scoreboard_->writeCentered(slot4_1_.x, slot4_1_.y + 4, lang::getText("SCOREBOARD_7")); // SCORE if (time_counter_ % 10 < 8) { - text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y - 2, lang::getText("[SCOREBOARD] 14")); + text_scoreboard_->writeCentered(slot4_3_.x, slot4_3_.y - 2, lang::getText("SCOREBOARD_14")); text_scoreboard_->writeCentered(slot4_4_.x, slot4_4_.y - 2, updateScoreText(score_[i])); } } @@ -342,7 +342,7 @@ void Scoreboard::fillBackgroundTexture() SDL_RenderClear(renderer_); // Copia las texturas de los paneles - for (int i = 0; i < [SCOREBOARD] MAX_PANELS; ++i) + for (int i = 0; i < SCOREBOARD_MAX_PANELS; ++i) { SDL_RenderTexture(renderer_, panel_texture_[i], nullptr, &panel_[i].pos); } @@ -358,8 +358,8 @@ void Scoreboard::fillBackgroundTexture() void Scoreboard::recalculateAnchors() { // Recalcula la posición y el tamaño de los paneles - const float panel_width = (float)rect_.w / (float)[SCOREBOARD] MAX_PANELS; - for (int i = 0; i < [SCOREBOARD] MAX_PANELS; ++i) + const float panel_width = (float)rect_.w / (float)SCOREBOARD_MAX_PANELS; + for (int i = 0; i < SCOREBOARD_MAX_PANELS; ++i) { panel_[i].pos.x = roundf(panel_width * i); panel_[i].pos.y = 0; @@ -427,7 +427,7 @@ void Scoreboard::createPanelTextures() panel_texture_.clear(); // Crea las texturas para cada panel_ - for (int i = 0; i < [SCOREBOARD] MAX_PANELS; ++i) + for (int i = 0; i < SCOREBOARD_MAX_PANELS; ++i) { SDL_Texture *tex = SDL_CreateTexture(renderer_, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, panel_[i].pos.w, panel_[i].pos.h); SDL_SetTextureBlendMode(tex, SDL_BLENDMODE_BLEND); diff --git a/source/scoreboard.h b/source/scoreboard.h index 7581364..063bfa2 100644 --- a/source/scoreboard.h +++ b/source/scoreboard.h @@ -15,10 +15,10 @@ class Text; class Texture; // --- Defines --- -constexpr int [SCOREBOARD] LEFT_PANEL = 0; -constexpr int [SCOREBOARD] CENTER_PANEL = 1; -constexpr int [SCOREBOARD] RIGHT_PANEL = 2; -constexpr int [SCOREBOARD] MAX_PANELS = 3; +constexpr int SCOREBOARD_LEFT_PANEL = 0; +constexpr int SCOREBOARD_CENTER_PANEL = 1; +constexpr int SCOREBOARD_RIGHT_PANEL = 2; +constexpr int SCOREBOARD_MAX_PANELS = 3; // --- Enums --- enum class ScoreboardMode : int @@ -83,13 +83,13 @@ private: std::vector panel_texture_; // Texturas para dibujar cada panel // --- Variables de estado --- - std::string name_[[SCOREBOARD] MAX_PANELS] = {}; // Nombre de cada jugador - std::string record_name_[[SCOREBOARD] MAX_PANELS] = {}; // Nombre introducido para la tabla de records - size_t selector_pos_[[SCOREBOARD] MAX_PANELS] = {}; // Posición del selector de letra para introducir el nombre - int score_[[SCOREBOARD] MAX_PANELS] = {}; // Puntuación de los jugadores - float mult_[[SCOREBOARD] MAX_PANELS] = {}; // Multiplicador de los jugadores - int continue_counter_[[SCOREBOARD] MAX_PANELS] = {}; // Tiempo para continuar de los jugadores - Panel panel_[[SCOREBOARD] MAX_PANELS] = {}; // Lista con todos los paneles del marcador + std::string name_[SCOREBOARD_MAX_PANELS] = {}; // Nombre de cada jugador + std::string record_name_[SCOREBOARD_MAX_PANELS] = {}; // Nombre introducido para la tabla de records + size_t selector_pos_[SCOREBOARD_MAX_PANELS] = {}; // Posición del selector de letra para introducir el nombre + int score_[SCOREBOARD_MAX_PANELS] = {}; // Puntuación de los jugadores + float mult_[SCOREBOARD_MAX_PANELS] = {}; // Multiplicador de los jugadores + int continue_counter_[SCOREBOARD_MAX_PANELS] = {}; // Tiempo para continuar de los jugadores + Panel panel_[SCOREBOARD_MAX_PANELS] = {}; // Lista con todos los paneles del marcador int stage_ = 1; // Número de fase actual int hi_score_ = 0; // Máxima puntuación float power_ = 0; // Poder actual de la fase diff --git a/source/section.h b/source/section.h index 6efad2d..c71545b 100644 --- a/source/section.h +++ b/source/section.h @@ -29,7 +29,7 @@ namespace section GAME_PLAY_1P, // Jugar 1 jugador GAME_PLAY_2P, // Jugar 2 jugadores TITLE_TIME_OUT, // Timeout en el título - [TITLE] PRESS_BUTTON_TO_PLAY, // Opción 1 en el título + TITLE_1, // Opción 1 en el título TITLE_2, // Opción 2 en el título QUIT_WITH_KEYBOARD, // Salir con teclado QUIT_WITH_CONTROLLER, // Salir con mando diff --git a/source/service_menu.cpp b/source/service_menu.cpp index ad0dddb..7aa90fb 100644 --- a/source/service_menu.cpp +++ b/source/service_menu.cpp @@ -9,6 +9,7 @@ #include "section.h" // Para Name, name, Options, options, AttractMode #include "audio.h" #include +#include "lang.h" // Singleton ServiceMenu *ServiceMenu::instance_ = nullptr; @@ -67,7 +68,7 @@ void ServiceMenu::render() // TITULO y += line_height_; - title_text_->writeDX(TEXT_COLOR | TEXT_CENTER, param.game.game_area.center_x, y, "SERVICE MENU", -4, title_color_); + title_text_->writeDX(TEXT_COLOR | TEXT_CENTER, param.game.game_area.center_x, y, lang::getText("[SERVICE_MENU] TITLE"), -4, title_color_); // LINEA y += line_height_ * 2; @@ -109,7 +110,7 @@ void ServiceMenu::update() void ServiceMenu::setAnchors() { line_height_ = element_text_->getCharacterSize() + 5; - width_ = 220; + width_ = 240; height_ = calculateMenuHeight(); rect_ = { (param.game.width - width_) / 2, @@ -212,19 +213,19 @@ void ServiceMenu::selectOption() // Opción if (display_options_.at(selected_).behavior == OptionBehavior::SELECT) { - if (display_options_.at(selected_).caption == "RESET") + if (display_options_.at(selected_).caption == lang::getText("[SERVICE_MENU] RESET")) { section::name = section::Name::INIT; toggle(); return; } - else if (display_options_.at(selected_).caption == "QUIT") + else if (display_options_.at(selected_).caption == lang::getText("[SERVICE_MENU] QUIT")) { section::name = section::Name::QUIT; section::options = section::Options::QUIT_WITH_KEYBOARD; return; } - else if (display_options_.at(selected_).caption == "SHUTDOWN") + else if (display_options_.at(selected_).caption == lang::getText("[SERVICE_MENU] SHUTDOWN")) { section::name = section::Name::QUIT; section::options = section::Options::QUIT_WITH_CONTROLLER; @@ -255,32 +256,31 @@ void ServiceMenu::moveBack() void ServiceMenu::initializeOptions() { // Video - options_.emplace_back("FULLSCREEN", SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.video.fullscreen, ValueType::BOOL); - options_.emplace_back("WINDOW SIZE", SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.window.size, ValueType::INT, 1, options.window.max_size, 1); - options_.emplace_back("SHADERS", SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.video.shaders, ValueType::BOOL); - options_.emplace_back("VSYNC", SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.video.v_sync, ValueType::BOOL); - options_.emplace_back("INTEGER SCALE", SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.video.integer_scale, ValueType::BOOL); + options_.emplace_back(lang::getText("[SERVICE_MENU] FULLSCREEN"), SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.video.fullscreen, ValueType::BOOL); + options_.emplace_back(lang::getText("[SERVICE_MENU] WINDOW_SIZE"), SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.window.size, ValueType::INT, 1, options.window.max_size, 1); + options_.emplace_back(lang::getText("[SERVICE_MENU] SHADERS"), SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.video.shaders, ValueType::BOOL); + options_.emplace_back(lang::getText("[SERVICE_MENU] VSYNC"), SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.video.v_sync, ValueType::BOOL); + options_.emplace_back(lang::getText("[SERVICE_MENU] INTEGER_SCALE"), SettingsGroup::VIDEO, OptionBehavior::ADJUST, &options.video.integer_scale, ValueType::BOOL); // Audio - options_.emplace_back("AUDIO", SettingsGroup::AUDIO, OptionBehavior::ADJUST, &options.audio.enabled, ValueType::BOOL); - options_.emplace_back("MAIN VOLUME", SettingsGroup::AUDIO, OptionBehavior::ADJUST, &options.audio.volume, ValueType::INT, 0, 100, 5); - options_.emplace_back("MUSIC VOLUME", SettingsGroup::AUDIO, OptionBehavior::ADJUST, &options.audio.music.volume, ValueType::INT, 0, 100, 5); - options_.emplace_back("SFX VOLUME", SettingsGroup::AUDIO, OptionBehavior::ADJUST, &options.audio.sound.volume, ValueType::INT, 0, 100, 5); + options_.emplace_back(lang::getText("[SERVICE_MENU] AUDIO"), SettingsGroup::AUDIO, OptionBehavior::ADJUST, &options.audio.enabled, ValueType::BOOL); + options_.emplace_back(lang::getText("[SERVICE_MENU] MAIN_VOLUME"), SettingsGroup::AUDIO, OptionBehavior::ADJUST, &options.audio.volume, ValueType::INT, 0, 100, 5); + options_.emplace_back(lang::getText("[SERVICE_MENU] MUSIC_VOLUME"), SettingsGroup::AUDIO, OptionBehavior::ADJUST, &options.audio.music.volume, ValueType::INT, 0, 100, 5); + options_.emplace_back(lang::getText("[SERVICE_MENU] SFX_VOLUME"), SettingsGroup::AUDIO, OptionBehavior::ADJUST, &options.audio.sound.volume, ValueType::INT, 0, 100, 5); // Game - options_.emplace_back("AUTOFIRE", SettingsGroup::GAME, OptionBehavior::ADJUST, &options.game.autofire, ValueType::BOOL); - // options_.emplace_back("LANG", SettingsGroup::GAME, OptionBehavior::ADJUST, &options.game.language, ValueType::BOOL); + options_.emplace_back(lang::getText("[SERVICE_MENU] AUTOFIRE"), SettingsGroup::GAME, OptionBehavior::ADJUST, &options.game.autofire, ValueType::BOOL); // System - options_.emplace_back("RESET", SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE); - options_.emplace_back("QUIT", SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE); - options_.emplace_back("SHUTDOWN", SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE); + 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); // Menu principal - options_.emplace_back("VIDEO", SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::VIDEO); - options_.emplace_back("AUDIO", SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::AUDIO); - options_.emplace_back("GAME", SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::GAME); - options_.emplace_back("SYSTEM", SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::SYSTEM); + options_.emplace_back(lang::getText("[SERVICE_MENU] VIDEO"), SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::VIDEO); + options_.emplace_back(lang::getText("[SERVICE_MENU] AUDIO"), SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::AUDIO); + options_.emplace_back(lang::getText("[SERVICE_MENU] GAME"), SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::GAME); + options_.emplace_back(lang::getText("[SERVICE_MENU] SYSTEM"), SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::SYSTEM); } // Devuelve las opciones del grupo como pares (nombre, valor) diff --git a/source/service_menu.h b/source/service_menu.h index a4380c4..fc076b2 100644 --- a/source/service_menu.h +++ b/source/service_menu.h @@ -6,6 +6,7 @@ #include #include #include "utils.h" +#include "lang.h" class Text; @@ -131,7 +132,7 @@ private: switch (type) { case ValueType::BOOL: - return (*(static_cast(linked_variable))) ? "ON" : "OFF"; + return (*(static_cast(linked_variable))) ? lang::getText("[SERVICE_MENU] ON") : lang::getText("[SERVICE_MENU] OFF"); case ValueType::INT: return std::to_string(*(static_cast(linked_variable))); default: diff --git a/source/title.cpp b/source/title.cpp index 33bc5df..f36cd84 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -46,7 +46,7 @@ Title::Title() Resource::get()->getTexture("smb2.gif")->setPalette(1); // Asigna valores a otras variables - section::options = section::Options::[TITLE] PRESS_BUTTON_TO_PLAY; + section::options = section::Options::TITLE_1; const bool IS_TITLE_TO_DEMO = (section::attract_mode == section::AttractMode::TITLE_TO_DEMO); next_section_ = IS_TITLE_TO_DEMO ? section::Name::GAME_DEMO : section::Name::LOGO; section::attract_mode = IS_TITLE_TO_DEMO ? section::AttractMode::TITLE_TO_LOGO : section::AttractMode::TITLE_TO_DEMO; diff --git a/source/utils.cpp b/source/utils.cpp index 71169c8..140d01b 100644 --- a/source/utils.cpp +++ b/source/utils.cpp @@ -20,9 +20,9 @@ const Color BG_COLOR = Color(0X27, 0X27, 0X36); const Color NO_COLOR = Color(0XFF, 0XFF, 0XFF); const Color SHADOW_TEXT_COLOR = Color(0X43, 0X43, 0X4F); const Color SEPARATOR_COLOR = Color(0X0D, 0X1A, 0X2B); -const Color [SCOREBOARD] EASY_COLOR = Color(0X4B, 0X69, 0X2F); -const Color [SCOREBOARD] NORMAL_COLOR = Color(0X2E, 0X3F, 0X47); -const Color [SCOREBOARD] HARD_COLOR = Color(0X76, 0X42, 0X8A); +const Color SCOREBOARD_EASY_COLOR = Color(0X4B, 0X69, 0X2F); +const Color SCOREBOARD_NORMAL_COLOR = Color(0X2E, 0X3F, 0X47); +const Color SCOREBOARD_HARD_COLOR = Color(0X76, 0X42, 0X8A); const Color FLASH_COLOR = Color(0XFF, 0XFF, 0XFF); const Color FADE_COLOR = Color(0X27, 0X27, 0X36); const Color ORANGE_COLOR = Color(0XFF, 0X7A, 0X00); diff --git a/source/utils.h b/source/utils.h index b2a517a..2986acf 100644 --- a/source/utils.h +++ b/source/utils.h @@ -115,9 +115,9 @@ extern const Color BG_COLOR; extern const Color NO_COLOR; extern const Color SHADOW_TEXT_COLOR; extern const Color SEPARATOR_COLOR; -extern const Color [SCOREBOARD] EASY_COLOR; -extern const Color [SCOREBOARD] NORMAL_COLOR; -extern const Color [SCOREBOARD] HARD_COLOR; +extern const Color SCOREBOARD_EASY_COLOR; +extern const Color SCOREBOARD_NORMAL_COLOR; +extern const Color SCOREBOARD_HARD_COLOR; extern const Color FLASH_COLOR; extern const Color FADE_COLOR; extern const Color ORANGE_COLOR;