diff options
author | Eugene Sandulenko | 2018-06-11 20:59:02 +0200 |
---|---|---|
committer | Bastien Bouclet | 2018-06-29 13:31:54 +0200 |
commit | 1e9b58ab4bf864456de315c03c3cf3d0d2a81b2e (patch) | |
tree | 962bced052b41bf0f14c49b010664fed4ba9900e /engines/mohawk/riven.cpp | |
parent | 07533424f8c3c70b0163af89657238c5c97798a8 (diff) | |
download | scummvm-rg350-1e9b58ab4bf864456de315c03c3cf3d0d2a81b2e.tar.gz scummvm-rg350-1e9b58ab4bf864456de315c03c3cf3d0d2a81b2e.tar.bz2 scummvm-rg350-1e9b58ab4bf864456de315c03c3cf3d0d2a81b2e.zip |
MOHAWK: RIVEN: Show main menu on ESC
Diffstat (limited to 'engines/mohawk/riven.cpp')
-rw-r--r-- | engines/mohawk/riven.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp index 648496b35e..1a2e0c3b60 100644 --- a/engines/mohawk/riven.cpp +++ b/engines/mohawk/riven.cpp @@ -73,6 +73,9 @@ MohawkEngine_Riven::MohawkEngine_Riven(OSystem *syst, const MohawkGameDescriptio _inventory = nullptr; _lastSaveTime = 0; + _prevCard = -1; + _prevStack = -1; + DebugMan.addDebugChannel(kRivenDebugScript, "Script", "Track Script Execution"); DebugMan.addDebugChannel(kRivenDebugPatches, "Patches", "Track Script Patching"); @@ -284,6 +287,32 @@ void MohawkEngine_Riven::doFrame() { } } break; + case Common::KEYCODE_ESCAPE: + if (!_scriptMan->hasQueuedScripts()) { + // Check if we haven't jumped to menu + if (_prevStack == -1) { + _prevStack = _stack->getId(); + _prevCard = _card->getId(); + + // If we are already in menu, do not call again + if (_prevStack == kStackAspit && _prevCard == 1) { + _prevStack = -1; + _prevCard = -1; + break; + } + + changeToStack(kStackAspit); + changeToCard(1); + } else { + changeToStack(_prevStack); + changeToCard(_prevCard); + _prevStack = -1; + _prevCard = -1; + } + } else { + _stack->onKeyPressed(event.kbd); + } + break; default: if (event.kbdRepeat) { continue; |