aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/inter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gob/inter.cpp')
-rw-r--r--engines/gob/inter.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/engines/gob/inter.cpp b/engines/gob/inter.cpp
index 9ef90718eb..b5f3d9bfa4 100644
--- a/engines/gob/inter.cpp
+++ b/engines/gob/inter.cpp
@@ -168,6 +168,9 @@ void Inter::funcBlock(int16 retFlag) {
if (executeFuncOpcode(cmd2, cmd, cmdCount, counter, retFlag))
return;
+ if (_vm->_quitRequested)
+ break;
+
if (_breakFlag) {
if (retFlag != 2)
break;
@@ -263,7 +266,7 @@ void Inter::checkSwitchTable(char **ppExec) {
void Inter::callSub(int16 retFlag) {
int16 block;
- while (_vm->_global->_inter_execPtr != 0 && (char *)_vm->_global->_inter_execPtr != _vm->_game->_totFileData) {
+ while (!_vm->_quitRequested && _vm->_global->_inter_execPtr != 0 && (char *)_vm->_global->_inter_execPtr != _vm->_game->_totFileData) {
block = *_vm->_global->_inter_execPtr;
if (block == 1) {
funcBlock(retFlag);