aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/gob/game.cpp1
-rw-r--r--engines/gob/game.h1
-rw-r--r--engines/gob/game_v2.cpp8
3 files changed, 9 insertions, 1 deletions
diff --git a/engines/gob/game.cpp b/engines/gob/game.cpp
index dbd4dd1176..0d750d525a 100644
--- a/engines/gob/game.cpp
+++ b/engines/gob/game.cpp
@@ -76,6 +76,7 @@ Game::Game(GobEngine *vm) : _vm(vm) {
_activeCollIndex = 0;
_handleMouse = 0;
_forceHandleMouse = 0;
+ _menuLevel = 0;
_tempStr[0] = 0;
_curImaFile[0] = 0;
diff --git a/engines/gob/game.h b/engines/gob/game.h
index 589364c165..17a7192e81 100644
--- a/engines/gob/game.h
+++ b/engines/gob/game.h
@@ -170,6 +170,7 @@ protected:
int16 _activeCollIndex;
byte _handleMouse;
char _forceHandleMouse;
+ uint32 _menuLevel;
char _tempStr[256];
diff --git a/engines/gob/game_v2.cpp b/engines/gob/game_v2.cpp
index 49d628ab5b..7fd681b870 100644
--- a/engines/gob/game_v2.cpp
+++ b/engines/gob/game_v2.cpp
@@ -277,7 +277,11 @@ void Game_v2::playTot(int16 skipPlay) {
_vm->_global->_inter_execPtr = _totFileData;
_vm->_global->_inter_execPtr +=
READ_LE_UINT16(_totFileData + (skipPlay << 1) + 0x66);
+
+ _menuLevel++;
_vm->_inter->callSub(2);
+ _menuLevel--;
+
if (_vm->_inter->_terminate != 0)
_vm->_inter->_terminate = 2;
}
@@ -444,7 +448,9 @@ int16 Game_v2::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,
key = checkKeys(&_vm->_global->_inter_mouseX,
&_vm->_global->_inter_mouseY, &_mouseButtons, handleMouse);
- if ((_vm->_global->_videoMode == 0x14) && (handleMouse != 0)) {
+ if ((_vm->_global->_videoMode == 0x14) && (handleMouse != 0) &&
+ (_menuLevel == 0)) {
+
int16 cursorRight;
int16 screenRight;