aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2018-06-11 20:59:02 +0200
committerBastien Bouclet2018-06-29 13:31:54 +0200
commit1e9b58ab4bf864456de315c03c3cf3d0d2a81b2e (patch)
tree962bced052b41bf0f14c49b010664fed4ba9900e /engines
parent07533424f8c3c70b0163af89657238c5c97798a8 (diff)
downloadscummvm-rg350-1e9b58ab4bf864456de315c03c3cf3d0d2a81b2e.tar.gz
scummvm-rg350-1e9b58ab4bf864456de315c03c3cf3d0d2a81b2e.tar.bz2
scummvm-rg350-1e9b58ab4bf864456de315c03c3cf3d0d2a81b2e.zip
MOHAWK: RIVEN: Show main menu on ESC
Diffstat (limited to 'engines')
-rw-r--r--engines/mohawk/riven.cpp29
-rw-r--r--engines/mohawk/riven.h2
2 files changed, 31 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;
diff --git a/engines/mohawk/riven.h b/engines/mohawk/riven.h
index 3dc19c7ee4..1cddd323d0 100644
--- a/engines/mohawk/riven.h
+++ b/engines/mohawk/riven.h
@@ -120,6 +120,8 @@ private:
RivenCard *_card;
RivenStack *_stack;
+ int _prevCard, _prevStack;
+
bool _gameEnded;
uint32 _lastSaveTime;