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);