canvi de pc

This commit is contained in:
2025-07-13 22:35:38 +02:00
parent 91839b3444
commit 7340b349b1
2 changed files with 33 additions and 14 deletions

View File

@@ -1366,6 +1366,25 @@ void Game::checkInput()
// Verifica los inputs globales. // Verifica los inputs globales.
GlobalInputs::check(); GlobalInputs::check();
// Comprueba si se ha activado/desactivado el menu de servcicio para poner/quitar la pausa
// Debe ir despues de GlobalInputs::check() que es el que activa/desactiva el menu de servicio
if (Input::get()->checkInput(InputAction::SERVICE, INPUT_DO_NOT_ALLOW_REPEAT))
{
static bool wasPausedBeforeServiceMenu = false;
if (ServiceMenu::get()->isEnabled())
{
// Guardamos el estado actual antes de modificarlo
wasPausedBeforeServiceMenu = paused_;
pause(true);
}
else
{
// Restauramos el estado anterior
pause(wasPausedBeforeServiceMenu);
}
}
} }
// Verifica si alguno de los controladores ha solicitado una pausa y actualiza el estado de pausa del juego. // Verifica si alguno de los controladores ha solicitado una pausa y actualiza el estado de pausa del juego.
@@ -2033,23 +2052,22 @@ void Game::playSound(const std::string &name)
// Organiza los jugadores para que los vivos se pinten sobre los muertos // Organiza los jugadores para que los vivos se pinten sobre los muertos
void Game::movePlayersToFront() void Game::movePlayersToFront()
{ {
if (players_to_reorder.empty()) if (players_to_reorder.empty())
return; return;
for (auto& player : players_to_reorder) for (auto &player : players_to_reorder)
{ {
auto it = std::find(players_.begin(), players_.end(), player); auto it = std::find(players_.begin(), players_.end(), player);
if (it != players_.end() && it != players_.begin()) if (it != players_.end() && it != players_.begin())
{ {
std::shared_ptr<Player> dyingPlayer = *it; std::shared_ptr<Player> dyingPlayer = *it;
players_.erase(it); players_.erase(it);
players_.insert(players_.begin(), dyingPlayer); players_.insert(players_.begin(), dyingPlayer);
} }
} }
players_to_reorder.clear(); players_to_reorder.clear();
} }
#ifdef DEBUG #ifdef DEBUG
// Comprueba los eventos en el modo DEBUG // Comprueba los eventos en el modo DEBUG
void Game::checkDebugEvents(const SDL_Event &event) void Game::checkDebugEvents(const SDL_Event &event)

View File

@@ -144,6 +144,7 @@ private:
bool coffee_machine_enabled_ = false; // Indica si hay una máquina de café en el terreno de juego bool coffee_machine_enabled_ = false; // Indica si hay una máquina de café en el terreno de juego
bool hi_score_achieved_ = false; // Indica si se ha superado la puntuación máxima bool hi_score_achieved_ = false; // Indica si se ha superado la puntuación máxima
bool paused_ = false; // Indica si el juego está pausado (no se deberia de poder utilizar en el modo arcade) bool paused_ = false; // Indica si el juego está pausado (no se deberia de poder utilizar en el modo arcade)
//bool paused_by_service_menu_ = false;
float difficulty_score_multiplier_; // Multiplicador de puntos en función de la dificultad float difficulty_score_multiplier_; // Multiplicador de puntos en función de la dificultad
int counter_ = 0; // Contador para el juego int counter_ = 0; // Contador para el juego
int game_completed_counter_ = 0; // Contador para el tramo final, cuando se ha completado la partida y ya no aparecen más enemigos int game_completed_counter_ = 0; // Contador para el tramo final, cuando se ha completado la partida y ya no aparecen más enemigos