La tabla de puntuació ja mostra amb altre color la puntuació que s'acaba d'afegir

fix: la tabla de punts no guardava a disc el estat de 1CC de cada entrada
This commit is contained in:
2025-02-05 22:52:19 +01:00
parent 6f594b9a1f
commit 5755947ff7
11 changed files with 175 additions and 66 deletions

View File

@@ -1370,11 +1370,11 @@ void Game::pause(bool value)
}
// Añade una puntuación a la tabla de records
void Game::addScoreToScoreBoard(const std::string &name, int score, bool one_credit_continue)
void Game::addScoreToScoreBoard(const std::shared_ptr<Player> &player)
{
const auto entry = HiScoreEntry(trim(name), score);
const auto entry = HiScoreEntry(trim(player->getRecordName()), player->getScore(), player->get1CC());
auto manager = std::make_unique<ManageHiScoreTable>(options.game.hi_score_table);
manager->add(entry);
options.game.last_hi_score_entry.at(player->getId() - 1) = manager->add(entry);
manager->saveToFile(asset_->get("score.bin"));
hi_score_.name = options.game.hi_score_table.front().name;
}
@@ -1627,6 +1627,7 @@ void Game::handlePlayerContinue(const std::shared_ptr<Player> &player)
if (input_->checkInput(InputType::START, INPUT_DO_NOT_ALLOW_REPEAT, options.controllers[controllerIndex].type, options.controllers[controllerIndex].index))
{
player->setPlayingState(PlayerState::PLAYING);
player->addCredit();
}
// Disminuye el contador de continuación si se presiona cualquier botón de disparo.
@@ -1634,7 +1635,10 @@ void Game::handlePlayerContinue(const std::shared_ptr<Player> &player)
input_->checkInput(InputType::FIRE_CENTER, INPUT_DO_NOT_ALLOW_REPEAT, options.controllers[controllerIndex].type, options.controllers[controllerIndex].index) ||
input_->checkInput(InputType::FIRE_RIGHT, INPUT_DO_NOT_ALLOW_REPEAT, options.controllers[controllerIndex].type, options.controllers[controllerIndex].index))
{
player->decContinueCounter();
if (player->getContinueCounter() < 8)
{
player->decContinueCounter();
}
}
}
@@ -1649,7 +1653,7 @@ void Game::handleNameInput(const std::shared_ptr<Player> &player)
if (player->getRecordNamePos() == NAME_LENGHT - 1)
{
player->setInput(InputType::START);
addScoreToScoreBoard(player->getRecordName(), player->getScore(), player->get1CC());
addScoreToScoreBoard(player);
const auto state = player->getPlayingState();
player->setPlayingState(state == PlayerState::ENTERING_NAME ? PlayerState::CONTINUE : PlayerState::LEAVING_SCREEN);
}
@@ -1673,7 +1677,7 @@ void Game::handleNameInput(const std::shared_ptr<Player> &player)
else if (input_->checkInput(InputType::START, INPUT_DO_NOT_ALLOW_REPEAT, options.controllers[controllerIndex].type, options.controllers[controllerIndex].index))
{
player->setInput(InputType::START);
addScoreToScoreBoard(player->getRecordName(), player->getScore(), player->get1CC());
addScoreToScoreBoard(player);
const auto state = player->getPlayingState();
player->setPlayingState(state == PlayerState::ENTERING_NAME ? PlayerState::CONTINUE : PlayerState::LEAVING_SCREEN);
}