ESC global amb doble pulsació: F12=pausa, BACKSPACE=cancel, text pausa més clar
This commit is contained in:
@@ -16,13 +16,14 @@
|
||||
#include <memory>
|
||||
#include <string> // for basic_string, operator+, char_t...
|
||||
|
||||
#include "core/audio/audio.hpp" // for Audio::init, Audio::destroy
|
||||
#include "core/input/input.h" // for Input, InputAction
|
||||
#include "core/input/mouse.hpp" // for Mouse::handleEvent, Mouse::upda...
|
||||
#include "core/locale/lang.h" // for Lang, Lang::Code
|
||||
#include "core/rendering/screen.h" // for Screen
|
||||
#include "core/rendering/texture.h" // for Texture
|
||||
#include "core/resources/asset.h" // for Asset, Asset::Type
|
||||
#include "core/audio/audio.hpp" // for Audio::init, Audio::destroy
|
||||
#include "core/input/global_inputs.hpp" // for GlobalInputs::wantsQuit
|
||||
#include "core/input/input.h" // for Input, InputAction
|
||||
#include "core/input/mouse.hpp" // for Mouse::handleEvent, Mouse::upda...
|
||||
#include "core/locale/lang.h" // for Lang, Lang::Code
|
||||
#include "core/rendering/screen.h" // for Screen
|
||||
#include "core/rendering/texture.h" // for Texture
|
||||
#include "core/resources/asset.h" // for Asset, Asset::Type
|
||||
#include "core/resources/resource.h"
|
||||
#include "core/resources/resource_helper.h"
|
||||
#include "game/defaults.hpp" // for SECTION_PROG_LOGO, GAMECANVAS_H...
|
||||
@@ -218,9 +219,12 @@ void Director::initInput() {
|
||||
|
||||
// Teclado - Otros
|
||||
Input::get()->bindKey(Input::Action::ACCEPT, SDL_SCANCODE_RETURN);
|
||||
Input::get()->bindKey(Input::Action::CANCEL, SDL_SCANCODE_ESCAPE);
|
||||
Input::get()->bindKey(Input::Action::PAUSE, SDL_SCANCODE_ESCAPE);
|
||||
// ESC només dispara EXIT (gestionat globalment per GlobalInputs com a
|
||||
// confirmació de doble pulsació). PAUSE i CANCEL tenen tecles dedicades
|
||||
// perquè cap escena ha de tractar ESC localment.
|
||||
Input::get()->bindKey(Input::Action::EXIT, SDL_SCANCODE_ESCAPE);
|
||||
Input::get()->bindKey(Input::Action::CANCEL, SDL_SCANCODE_BACKSPACE);
|
||||
Input::get()->bindKey(Input::Action::PAUSE, SDL_SCANCODE_F12);
|
||||
Input::get()->bindKey(Input::Action::WINDOW_DEC_ZOOM, SDL_SCANCODE_F1);
|
||||
Input::get()->bindKey(Input::Action::WINDOW_INC_ZOOM, SDL_SCANCODE_F2);
|
||||
Input::get()->bindKey(Input::Action::WINDOW_FULLSCREEN, SDL_SCANCODE_F3);
|
||||
@@ -579,6 +583,13 @@ void Director::handleSectionTransition() {
|
||||
|
||||
// Ejecuta un frame del juego
|
||||
auto Director::iterate() -> SDL_AppResult {
|
||||
#ifndef __EMSCRIPTEN__
|
||||
// Doble pulsació d'ESC confirmada des de qualsevol escena.
|
||||
if (GlobalInputs::wantsQuit()) {
|
||||
section_->name = SECTION_PROG_QUIT;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
// En WASM no se puede salir: reinicia al logo
|
||||
if (section->name == SECTION_PROG_QUIT) {
|
||||
|
||||
Reference in New Issue
Block a user