c32a880b6a
Substitueix el bucle blocant main() → Director::run() → escena::run() per SDL_AppInit/Iterate/Event/Quit. Cada escena implementa ara iterate() (un frame) i handleEvent() (un event) sota una interfície base Scene. - Director gestiona l'escena activa i les transicions via switchToActiveScene() - Setup/cleanup que estava al voltant del while de run() mogut a ctor/dtor (música de Game/Ending/Ending2, volum de LoadingScreen) - GlobalEvents ja no processa SDL_EVENT_QUIT (ho fa Director::handleEvent) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
25 lines
987 B
C++
25 lines
987 B
C++
#include "core/system/global_events.hpp"
|
|
|
|
#include "core/input/mouse.hpp"
|
|
#include "game/options.hpp" // Para Options, options, OptionsGame, OptionsAudio
|
|
#include "game/ui/console.hpp" // Para Console
|
|
|
|
namespace GlobalEvents {
|
|
// Comprueba los eventos que se pueden producir en cualquier sección del juego.
|
|
// Nota: SDL_EVENT_QUIT el gestiona Director::handleEvent() directament.
|
|
void handle(const SDL_Event& event) {
|
|
if (event.type == SDL_EVENT_RENDER_DEVICE_RESET || event.type == SDL_EVENT_RENDER_TARGETS_RESET) {
|
|
// reLoadTextures();
|
|
}
|
|
|
|
// Enrutar eventos de texto a la consola cuando está activa
|
|
if (Console::get() != nullptr && Console::get()->isActive()) {
|
|
if (event.type == SDL_EVENT_TEXT_INPUT || event.type == SDL_EVENT_KEY_DOWN) {
|
|
Console::get()->handleEvent(event);
|
|
return;
|
|
}
|
|
}
|
|
|
|
Mouse::handleEvent(event);
|
|
}
|
|
} // namespace GlobalEvents
|