Afegit global_events.cpp

This commit is contained in:
2025-03-10 23:24:00 +01:00
parent 9d98d3ea6a
commit 482dc3de54
26 changed files with 197 additions and 530 deletions

View File

@@ -12,7 +12,7 @@
#include "input.h" // Para Input, InputType, INPUT_DO_NOT_ALLOW_R...
#include "jail_audio.h" // Para JA_GetMusicState, JA_FadeOutMusic, JA_...
#include "lang.h" // Para getText
#include "mouse.h" // Para handleEvent
#include "global_events.h" // Para handleEvent
#include "notifier.h" // Para Notifier
#include "options.h" // Para OptionsController, Options, options
#include "param.h" // Para Param, param, ParamGame, ParamTitle
@@ -213,71 +213,51 @@ void Title::render()
// Comprueba los eventos
void Title::checkEvents()
{
// Comprueba el input para el resto de objetos
define_buttons_->checkEvents();
// Si define_buttons_ está habilitado, es él quien gestiona los eventos
if (!define_buttons_->isEnabled())
SDL_Event event;
while (SDL_PollEvent(&event))
{
SDL_Event event;
while (SDL_PollEvent(&event))
if (event.type == SDL_KEYDOWN && event.key.repeat == 0)
{
// Evento de salida de la aplicación
if (event.type == SDL_QUIT)
bool should_reset = false;
switch (event.key.keysym.sym)
{
section::name = section::Name::QUIT;
section::options = section::Options::QUIT_FROM_EVENT;
case SDLK_1: // Redefine los botones del mando #0
should_reset = define_buttons_->enable(0);
break;
case SDLK_2: // Redefine los botones del mando #1
should_reset = define_buttons_->enable(1);
break;
case SDLK_3: // Intercambia los mandos entre los dos jugadores
swapControllers();
should_reset = true;
break;
case SDLK_4: // Intercambia la asignación del teclado
swapKeyboard();
should_reset = true;
break;
case SDLK_5: // Muestra la asignación de mandos y teclado
showControllers();
should_reset = true;
break;
default:
break;
}
// Recarga las texturas
else if (event.type == SDL_RENDER_DEVICE_RESET || event.type == SDL_RENDER_TARGETS_RESET)
// Resetear el contador si es necesario
if (should_reset)
{
reLoadTextures();
resetCounter();
}
else if (event.type == SDL_KEYDOWN && event.key.repeat == 0)
{
switch (event.key.keysym.sym)
{
case SDLK_1: // Redefine los botones del mando #0
{
if (define_buttons_->enable(0))
resetCounter();
break;
}
case SDLK_2: // Redefine los botones del mando #1
{
if (define_buttons_->enable(1))
resetCounter();
break;
}
case SDLK_3: // Intercambia los mandos entre los dos jugadores
{
swapControllers();
resetCounter();
break;
}
case SDLK_4: // Intercambia la asignación del teclado
{
swapKeyboard();
resetCounter();
break;
}
case SDLK_5: // Muestra la asignacion de mandos y teclado
{
showControllers();
resetCounter();
break;
}
default:
break;
}
}
// Comprueba el cursor
Mouse::handleEvent(event);
}
globalEvents::check(event);
define_buttons_->checkEvents(event);
}
}
@@ -350,13 +330,6 @@ void Title::run()
}
}
// Recarga las texturas
void Title::reLoadTextures()
{
game_logo_->reLoad();
tiled_bg_->reLoad();
}
// Reinicia el contador interno
void Title::resetCounter() { counter_ = 0; }