fix: el nom apareixia duplicat en la tabla de records

This commit is contained in:
2025-08-10 20:36:13 +02:00
parent 0fc709f6d5
commit 659a4ced44
4 changed files with 23 additions and 22 deletions

View File

@@ -1172,12 +1172,8 @@ void Game::updateScoreboard() {
scoreboard_->update();
}
// Añade una puntuación a la tabla de records
void Game::addScoreToScoreBoard(const std::shared_ptr<Player> &player) {
const auto ENTRY = HiScoreEntry(trim(player->getLastEnterName()), player->getScore(), player->get1CC());
auto manager = std::make_unique<ManageHiScoreTable>(Options::settings.hi_score_table);
Options::settings.glowing_entries.at(static_cast<int>(player->getId()) - 1) = manager->add(ENTRY);
manager->saveToFile(Asset::get()->get("score.bin"));
// Pone en el marcador el nombre del primer jugador de la tabla
void Game::updateHiScoreName() {
hi_score_.name = Options::settings.hi_score_table.front().name;
}
@@ -1443,8 +1439,8 @@ void Game::handleNameInput(const std::shared_ptr<Player> &player) {
player->setPlayingState(Player::State::CONTINUE);
} else if (player->getEnterNamePositionOverflow()) {
player->setInput(Input::Action::START);
addScoreToScoreBoard(player);
player->setPlayingState(Player::State::SHOWING_NAME);
updateHiScoreName();
} else {
player->setInput(Input::Action::RIGHT);
}
@@ -1464,8 +1460,8 @@ void Game::handleNameInput(const std::shared_ptr<Player> &player) {
player->setPlayingState(Player::State::CONTINUE);
} else {
player->setInput(Input::Action::START);
addScoreToScoreBoard(player);
player->setPlayingState(Player::State::SHOWING_NAME);
updateHiScoreName();
}
}
}