aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/sci.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index 5d67e5c5d7..d58cdd5986 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -277,10 +277,6 @@ bool SciEngine::initGame() {
}
_gamestate->initGlobals();
-
- if (_gamestate->abortScriptProcessing == kAbortRestartGame && _gfxMenu)
- _gfxMenu->reset();
-
_gamestate->_segMan->initSysStrings();
_gamestate->r_acc = _gamestate->r_prev = NULL_REG;
@@ -415,16 +411,19 @@ void SciEngine::runGame() {
exitGame();
if (_gamestate->abortScriptProcessing == kAbortRestartGame) {
- _gamestate->abortScriptProcessing = kAbortNone;
_gamestate->_segMan->resetSegMan();
initGame();
initStackBaseWithSelector(SELECTOR(play));
_gamestate->gameWasRestarted = true;
+ if (_gfxMenu)
+ _gfxMenu->reset();
+ _gamestate->abortScriptProcessing = kAbortNone;
} else if (_gamestate->abortScriptProcessing == kAbortLoadGame) {
_gamestate->abortScriptProcessing = kAbortNone;
_gamestate->_executionStack.clear();
initStackBaseWithSelector(SELECTOR(replay));
_gamestate->shrinkStackToBase();
+ _gamestate->abortScriptProcessing = kAbortNone;
} else {
break; // exit loop
}