afegit callback a service menu per a posar pausa en el joc

This commit is contained in:
2025-08-10 13:36:28 +02:00
parent d90f247bdd
commit 0204a8896a
4 changed files with 56 additions and 33 deletions

View File

@@ -98,6 +98,14 @@ Game::Game(Player::Id player_id, int current_stage, bool demo)
initPaths();
setTotalPower();
// Registra callbacks
ServiceMenu::get()->setStateChangeCallback([this](bool isActive) {
// Solo aplicar pausa si NO estamos en modo demo
if (!demo_.enabled) {
pause_manager_->setServiceMenuPause(isActive);
}
});
#ifdef _DEBUG
// Si se empieza en una fase que no es la primera
if (!demo_.enabled) {
@@ -890,7 +898,6 @@ void Game::update() {
ticks_ = SDL_GetTicks();
screen_->update();
checkServiceMenu();
updateDemo();
#ifdef RECORDING
updateRecording();
@@ -1860,19 +1867,6 @@ void Game::sortPlayersByZOrder() {
}
}
// Comprueba si está activo el menu de servicio para poner el juego en pausa
void Game::checkServiceMenu() {
if (demo_.enabled) {
return;
}
if (ServiceMenu::get()->isEnabled()) {
pause_manager_->setServiceMenuPause(true);
} else {
pause_manager_->setServiceMenuPause(false);
}
}
// Mueve el jugador para pintarlo al fondo de la lista de jugadores
void Game::sendPlayerToTheBack(const std::shared_ptr<Player> &player) {
players_to_put_at_back_.push_back(player);