From db87cb0c63582b82cf6e175f3fc52fe4265b0f9d Mon Sep 17 00:00:00 2001 From: Cameron Cawley Date: Wed, 11 Mar 2020 10:53:34 +0000 Subject: [PATCH] ZVISION: Use custom engine actions for the menubar shortcuts --- engines/zvision/core/events.cpp | 46 ++++++++++++++------------------- engines/zvision/detection.cpp | 8 +++--- engines/zvision/zvision.h | 6 +++-- 3 files changed, 28 insertions(+), 32 deletions(-) diff --git a/engines/zvision/core/events.cpp b/engines/zvision/core/events.cpp index 070a313d091..955700ef040 100644 --- a/engines/zvision/core/events.cpp +++ b/engines/zvision/core/events.cpp @@ -68,31 +68,6 @@ uint8 ZVision::getBufferedKey(uint8 pos) { return _cheatBuffer[KEYBUF_SIZE - pos - 1]; } -void ZVision::shortKeys(Common::Event event) { - if (event.kbd.hasFlags(Common::KBD_CTRL)) { - switch (event.kbd.keycode) { - case Common::KEYCODE_s: - if (_menu->getEnable() & kMenubarSave) - _scriptManager->changeLocation('g', 'j', 's', 'e', 0); - break; - case Common::KEYCODE_r: - if (_menu->getEnable() & kMenubarRestore) - _scriptManager->changeLocation('g', 'j', 'r', 'e', 0); - break; - case Common::KEYCODE_p: - if (_menu->getEnable() & kMenubarSettings) - _scriptManager->changeLocation('g', 'j', 'p', 'e', 0); - break; - case Common::KEYCODE_q: - if (_menu->getEnable() & kMenubarExit) - ifQuit(); - break; - default: - break; - } - } -} - void ZVision::cheatCodes(uint8 key) { Location loc = _scriptManager->getCurrentLocation(); // Do not process cheat codes while in the game menus @@ -240,6 +215,26 @@ void ZVision::processEvents() { _scriptManager->getStateValue(StateKey_KbdRotateSpeed)) * 2; break; + case kZVisionActionSave: + if (_menu->getEnable() & kMenubarSave) + _scriptManager->changeLocation('g', 'j', 's', 'e', 0); + break; + + case kZVisionActionRestore: + if (_menu->getEnable() & kMenubarRestore) + _scriptManager->changeLocation('g', 'j', 'r', 'e', 0); + break; + + case kZVisionActionPreferences: + if (_menu->getEnable() & kMenubarSettings) + _scriptManager->changeLocation('g', 'j', 'p', 'e', 0); + break; + + case kZVisionActionQuit: + if (_menu->getEnable() & kMenubarExit) + ifQuit(); + break; + case kZVisionActionShowFPS: { Common::String fpsStr = Common::String::format("FPS: %d", getFPS()); _renderManager->showDebugMsg(fpsStr); @@ -273,7 +268,6 @@ void ZVision::processEvents() { _scriptManager->setStateValue(StateKey_KeyPress, vkKey); _scriptManager->addEvent(_event); - shortKeys(_event); cheatCodes(vkKey); } break; diff --git a/engines/zvision/detection.cpp b/engines/zvision/detection.cpp index 8199dbfe462..133967cd58e 100644 --- a/engines/zvision/detection.cpp +++ b/engines/zvision/detection.cpp @@ -211,22 +211,22 @@ Common::KeymapArray ZVisionMetaEngine::initKeymaps(const char *target) const { mainKeymap->addAction(act); act = new Action(kStandardActionSave, _("Save")); - act->setKeyEvent(KeyState(KEYCODE_s, 's', KBD_CTRL)); + act->setCustomEngineActionEvent(kZVisionActionSave); act->addDefaultInputMapping("C+s"); mainKeymap->addAction(act); act = new Action(kStandardActionLoad, _("Restore")); - act->setKeyEvent(KeyState(KEYCODE_r, 'r', KBD_CTRL)); + act->setCustomEngineActionEvent(kZVisionActionRestore); act->addDefaultInputMapping("C+r"); mainKeymap->addAction(act); act = new Action("QUIT", _("Quit")); - act->setKeyEvent(KeyState(KEYCODE_q, 'q', KBD_CTRL)); + act->setCustomEngineActionEvent(kZVisionActionQuit); act->addDefaultInputMapping("C+q"); mainKeymap->addAction(act); act = new Action(kStandardActionOpenSettings, _("Preferences")); - act->setKeyEvent(KeyState(KEYCODE_p, 'p', KBD_CTRL)); + act->setCustomEngineActionEvent(kZVisionActionPreferences); act->addDefaultInputMapping("C+p"); mainKeymap->addAction(act); diff --git a/engines/zvision/zvision.h b/engines/zvision/zvision.h index 291fe6789a7..d920b370423 100644 --- a/engines/zvision/zvision.h +++ b/engines/zvision/zvision.h @@ -106,9 +106,12 @@ enum ZVisionAction { kZVisionActionDown, kZVisionActionLeft, kZVisionActionRight, + kZVisionActionSave, + kZVisionActionRestore, + kZVisionActionQuit, + kZVisionActionPreferences, kZVisionActionShowFPS, kZVisionActionSkipCutscene, - kZVisionActionQuit, kZVisionActionCount }; @@ -276,7 +279,6 @@ private: void onMouseMove(const Common::Point &pos); void registerDefaultSettings(); - void shortKeys(Common::Event); void cheatCodes(uint8 key); void pushKeyToCheatBuf(uint8 key);