From 978cbcc9fca80e5a8b76106280c2057d046325d4 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Sun, 12 Apr 2026 21:03:09 +0200 Subject: [PATCH] =?UTF-8?q?desactivat=20eixir=20del=20joc=20en=20la=20vers?= =?UTF-8?q?i=C3=B3=20WASM=20(milestone=205)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- source/director.cpp | 9 +++++++++ source/title.cpp | 11 ++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/source/director.cpp b/source/director.cpp index 8ec53c9..e0a52c9 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -638,9 +638,16 @@ void Director::handleSectionTransition() { // Ejecuta un frame del juego SDL_AppResult Director::iterate() { +#ifdef __EMSCRIPTEN__ + // En WASM no se puede salir: reinicia al logo + if (section->name == SECTION_PROG_QUIT) { + section->name = SECTION_PROG_LOGO; + } +#else if (section->name == SECTION_PROG_QUIT) { return SDL_APP_SUCCESS; } +#endif // Gestiona las transiciones entre secciones handleSectionTransition(); @@ -668,11 +675,13 @@ SDL_AppResult Director::iterate() { // Procesa un evento SDL_AppResult Director::handleEvent(SDL_Event *event) { +#ifndef __EMSCRIPTEN__ // Evento de salida de la aplicación if (event->type == SDL_EVENT_QUIT) { section->name = SECTION_PROG_QUIT; return SDL_APP_SUCCESS; } +#endif // Reenvía el evento a la sección activa switch (activeSection) { diff --git a/source/title.cpp b/source/title.cpp index 59257e3..48973c5 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -646,11 +646,12 @@ void Title::checkEvents() { // Comprueba las entradas void Title::checkInput() { +#ifndef __EMSCRIPTEN__ if (input->checkInput(input_exit, REPEAT_FALSE)) { section->name = SECTION_PROG_QUIT; - } - - else if (input->checkInput(input_window_fullscreen, REPEAT_FALSE)) { + } else +#endif + if (input->checkInput(input_window_fullscreen, REPEAT_FALSE)) { screen->switchVideoMode(); } @@ -851,6 +852,10 @@ void Title::updateMenuLabels() { menu.title->setItemCaption(1, lang->getText(52)); // 2 PLAYERS menu.title->setItemCaption(2, lang->getText(1)); // OPTIONS menu.title->setItemCaption(3, lang->getText(3)); // QUIT +#ifdef __EMSCRIPTEN__ + menu.title->setVisible(3, false); + menu.title->setSelectable(3, false); +#endif // Recoloca el menu de titulo menu.title->centerMenuOnX(GAMECANVAS_CENTER_X);