diff --git a/config/assets.txt b/config/assets.txt index e028cd0..b65507f 100644 --- a/config/assets.txt +++ b/config/assets.txt @@ -52,6 +52,7 @@ SOUND|${PREFIX}/data/sound/notify.wav SOUND|${PREFIX}/data/sound/player_collision.wav SOUND|${PREFIX}/data/sound/power_ball_explosion.wav SOUND|${PREFIX}/data/sound/service_menu_adjust.wav +SOUND|${PREFIX}/data/sound/service_menu_back.wav SOUND|${PREFIX}/data/sound/service_menu_move.wav SOUND|${PREFIX}/data/sound/service_menu_select.wav SOUND|${PREFIX}/data/sound/stage_change.wav diff --git a/data/sound/click-2.wav b/data/sound/click-2.wav new file mode 100644 index 0000000..5b1ff43 Binary files /dev/null and b/data/sound/click-2.wav differ diff --git a/data/sound/click-3.wav b/data/sound/click-3.wav new file mode 100644 index 0000000..e14bfbd Binary files /dev/null and b/data/sound/click-3.wav differ diff --git a/data/sound/service_menu_back.wav b/data/sound/service_menu_back.wav new file mode 100644 index 0000000..a9e88b7 Binary files /dev/null and b/data/sound/service_menu_back.wav differ diff --git a/data/sound/service_menu_move.wav b/data/sound/service_menu_move.wav index a1b45ae..84cbd8b 100644 Binary files a/data/sound/service_menu_move.wav and b/data/sound/service_menu_move.wav differ diff --git a/resources.pack b/resources.pack deleted file mode 100644 index 86771f7..0000000 Binary files a/resources.pack and /dev/null differ diff --git a/source/scoreboard.cpp b/source/scoreboard.cpp index 3af5e10..f07e80e 100644 --- a/source/scoreboard.cpp +++ b/source/scoreboard.cpp @@ -37,10 +37,7 @@ auto Scoreboard::get() -> Scoreboard * { // Constructor Scoreboard::Scoreboard() - : renderer_(Screen::get()->getRenderer()), - game_power_meter_texture_(Resource::get()->getTexture("game_power_meter.png")), - power_meter_sprite_(std::make_unique(game_power_meter_texture_)), - text_scoreboard_(Resource::get()->getText("8bithud")) { + : renderer_(Screen::get()->getRenderer()), game_power_meter_texture_(Resource::get()->getTexture("game_power_meter.png")), power_meter_sprite_(std::make_unique(game_power_meter_texture_)), text_scoreboard_(Resource::get()->getText("8bithud")) { // Inicializa variables for (size_t i = 0; i < static_cast(Id::SIZE); ++i) { name_.at(i).clear(); @@ -284,17 +281,18 @@ void Scoreboard::renderNameInputField(size_t panel_index) { // Selecciona el color const Color COLOR = j < selector_pos_.at(panel_index) ? text_color2_ : text_color1_; - if (j != selector_pos_.at(panel_index) || time_counter_ % 3 == 0) { - // Dibuja la linea + // Dibuja la linea. Si coincide con el selector solo se dibuja 2 de cada 4 veces + if (j != selector_pos_.at(panel_index) || time_counter_ % 4 >= 2) { + // Si está a la derecha del selector, se dibuja siempre if (j >= selector_pos_.at(panel_index)) { SDL_SetRenderDrawColor(renderer_, COLOR.r, COLOR.g, COLOR.b, 255); SDL_RenderLine(renderer_, rect.x, rect.y + rect.h, rect.x + rect.w, rect.y + rect.h); } - - // Dibuja la letra - if (j < record_name_.at(panel_index).size()) { - text_scoreboard_->writeColored(rect.x, rect.y, record_name_.at(panel_index).substr(j, 1), COLOR); - } + } + + // Dibuja la letra + if (j < record_name_.at(panel_index).size()) { + text_scoreboard_->writeColored(rect.x, rect.y, record_name_.at(panel_index).substr(j, 1), COLOR); } rect.x += 7; } diff --git a/source/sections/game.cpp b/source/sections/game.cpp index 887a9ad..0e515d1 100644 --- a/source/sections/game.cpp +++ b/source/sections/game.cpp @@ -1424,9 +1424,11 @@ void Game::handleNameInput(const std::shared_ptr &player) { } else if (player->getEnterNamePositionOverflow()) { player->setInput(Input::Action::START); player->setPlayingState(Player::State::SHOWING_NAME); + playSound("service_menu_select.wav"); updateHiScoreName(); } else { player->setInput(Input::Action::RIGHT); + playSound("service_menu_select.wav"); } } else if (input_->checkAction(Input::Action::FIRE_CENTER, Input::DO_NOT_ALLOW_REPEAT, player->getUsesKeyboard(), player->getGamepad()) || input_->checkAction(Input::Action::FIRE_RIGHT, Input::DO_NOT_ALLOW_REPEAT, player->getUsesKeyboard(), player->getGamepad())) { @@ -1434,17 +1436,21 @@ void Game::handleNameInput(const std::shared_ptr &player) { player->setPlayingState(Player::State::CONTINUE); } else { player->setInput(Input::Action::LEFT); + playSound("service_menu_back.wav"); } } else if (input_->checkAction(Input::Action::UP, Input::DO_NOT_ALLOW_REPEAT, player->getUsesKeyboard(), player->getGamepad())) { player->setInput(Input::Action::UP); - } else if (input_->checkAction(Input::Action::DOWN, Input::DO_NOT_ALLOW_REPEAT, player->getUsesKeyboard(), player->getGamepad())) { - player->setInput(Input::Action::DOWN); + playSound("service_menu_move.wav"); + } else if (input_->checkAction(Input::Action::DOWN, Input::DO_NOT_ALLOW_REPEAT, player->getUsesKeyboard(), player->getGamepad())) { + player->setInput(Input::Action::DOWN); + playSound("service_menu_move.wav"); } else if (input_->checkAction(Input::Action::START, Input::DO_NOT_ALLOW_REPEAT, player->getUsesKeyboard(), player->getGamepad())) { if (player->isShowingName()) { player->setPlayingState(Player::State::CONTINUE); } else { player->setInput(Input::Action::START); player->setPlayingState(Player::State::SHOWING_NAME); + playSound("service_menu_select.wav"); updateHiScoreName(); } } diff --git a/source/ui/service_menu.cpp b/source/ui/service_menu.cpp index 9415999..0c68da3 100644 --- a/source/ui/service_menu.cpp +++ b/source/ui/service_menu.cpp @@ -49,16 +49,17 @@ void ServiceMenu::toggle() { return; } - playBackSound(); - + if (!enabled_) { // Si está cerrado, abrir reset(); Options::gamepad_manager.assignAndLinkGamepads(); renderer_->show(this); setEnabledInternal(true); + playSelectSound(); } else { // Si está abierto, cerrar renderer_->hide(); setEnabledInternal(false); + playBackSound(); } } @@ -518,7 +519,7 @@ void ServiceMenu::adjustListValues() { void ServiceMenu::playAdjustSound() { Audio::get()->playSound("service_menu_adjust.wav", Audio::Group::INTERFACE); } void ServiceMenu::playMoveSound() { Audio::get()->playSound("service_menu_move.wav", Audio::Group::INTERFACE); } void ServiceMenu::playSelectSound() { Audio::get()->playSound("service_menu_select.wav", Audio::Group::INTERFACE); } -void ServiceMenu::playBackSound() { Audio::get()->playSound("service_menu_select.wav", Audio::Group::INTERFACE); } +void ServiceMenu::playBackSound() { Audio::get()->playSound("service_menu_back.wav", Audio::Group::INTERFACE); } // Devuelve el nombre del grupo como string para el título auto ServiceMenu::settingsGroupToString(SettingsGroup group) -> std::string {