aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/sci.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index 07c8d42cb6..fdd3d5e379 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -254,8 +254,8 @@ Common::Error SciEngine::run() {
debug("Emulating SCI version %s\n", getSciVersionDesc(getSciVersion()));
- // ENABLE THIS FOR REPLACING SIERRA GAME RESTORE DIALOG WITH SCUMMVM RESTORE
- //patchGameSaveRestore(segMan);
+ // Patch in our save/restore code, so that dialogs are replaced
+ patchGameSaveRestore(segMan);
if (_gameDescription->flags & ADGF_ADDENGLISH) {
// if game is multilingual
@@ -347,6 +347,9 @@ void SciEngine::patchGameSaveRestore(SegManager *segMan) {
const uint16 kernelCount = _kernel->getKernelNamesSize();
byte kernelIdRestore = 0;
+ // DISABLE NEXT LINE FOR REPLACING SIERRA GAME RESTORE DIALOG WITH SCUMMVM RESTORE
+ return;
+
for (uint16 kernelNr = 0; kernelNr < kernelCount; kernelNr++) {
Common::String kernelName = _kernel->getKernelName(kernelNr);
if (kernelName == "RestoreGame")
@@ -521,6 +524,7 @@ void SciEngine::runGame() {
_gamestate->_segMan->resetSegMan();
initGame();
initStackBaseWithSelector(SELECTOR(play));
+ patchGameSaveRestore(_gamestate->_segMan);
_gamestate->gameIsRestarting = GAMEISRESTARTING_RESTART;
if (_gfxMenu)
_gfxMenu->reset();
@@ -529,6 +533,7 @@ void SciEngine::runGame() {
_gamestate->abortScriptProcessing = kAbortNone;
_gamestate->_executionStack.clear();
initStackBaseWithSelector(SELECTOR(replay));
+ patchGameSaveRestore(_gamestate->_segMan);
_gamestate->shrinkStackToBase();
_gamestate->abortScriptProcessing = kAbortNone;
} else {