new: el joc es pausa si traus el menu de servei (de paso serveix com a botó de pausa per a la recre, que no en tenia)
This commit is contained in:
@@ -977,6 +977,7 @@ void Game::update()
|
||||
{
|
||||
ticks_ = SDL_GetTicks();
|
||||
|
||||
checkServiceMenu();
|
||||
updateDemo();
|
||||
#ifdef RECORDING
|
||||
updateRecording();
|
||||
@@ -1366,25 +1367,6 @@ void Game::checkInput()
|
||||
|
||||
// Verifica los inputs globales.
|
||||
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.
|
||||
@@ -2068,6 +2050,33 @@ void Game::movePlayersToFront()
|
||||
players_to_reorder.clear();
|
||||
}
|
||||
|
||||
// Comprueba si está activo el menu de servicio para poner el juego en pausa
|
||||
void Game::checkServiceMenu()
|
||||
{
|
||||
if (demo_.enabled)
|
||||
return;
|
||||
|
||||
static bool was_paused_before_service_menu = false;
|
||||
static bool service_menu_was_active = false;
|
||||
|
||||
bool service_menu_is_active = ServiceMenu::get()->isEnabled();
|
||||
|
||||
if (service_menu_is_active && !service_menu_was_active)
|
||||
{
|
||||
// El menú acaba de abrirse
|
||||
was_paused_before_service_menu = paused_;
|
||||
pause(true);
|
||||
}
|
||||
else if (!service_menu_is_active && service_menu_was_active)
|
||||
{
|
||||
// El menú acaba de cerrarse
|
||||
pause(was_paused_before_service_menu);
|
||||
}
|
||||
|
||||
service_menu_was_active = service_menu_is_active;
|
||||
}
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
// Comprueba los eventos en el modo DEBUG
|
||||
void Game::checkDebugEvents(const SDL_Event &event)
|
||||
|
||||
Reference in New Issue
Block a user