diff options
author | Filippos Karapetis | 2010-07-22 12:38:48 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-07-22 12:38:48 +0000 |
commit | 8eca9d6acb55ae121145ca5779c493244a6499f3 (patch) | |
tree | cb90af6022b1310c4bb5241f139ba1d261c51bd8 /engines/sci/engine | |
parent | a01152a3bacdeec06a4206b939bcfc1dc2c8ee65 (diff) | |
download | scummvm-rg350-8eca9d6acb55ae121145ca5779c493244a6499f3.tar.gz scummvm-rg350-8eca9d6acb55ae121145ca5779c493244a6499f3.tar.bz2 scummvm-rg350-8eca9d6acb55ae121145ca5779c493244a6499f3.zip |
SCI: Fixed a bug when loading some saved games (sometimes, the execution stack wasn't cleared properly when loading and you couldn't save or restore)
svn-id: r51140
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/savegame.cpp | 1 | ||||
-rw-r--r-- | engines/sci/engine/vm.cpp | 4 |
2 files changed, 1 insertions, 4 deletions
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index 5690969065..c080120d7b 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -805,7 +805,6 @@ void gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) { s->_msgState = new MessageState(s->_segMan); s->abortScriptProcessing = kAbortLoadGame; - s->shrinkStackToBase(); } bool get_savegame_metadata(Common::SeekableReadStream *stream, SavegameMetadata *meta) { diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index ada6d8ed92..61cc4c429a 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -934,9 +934,7 @@ void run_vm(EngineState *s) { if (!local_script) error("run_vm(): program counter gone astray (local_script pointer is null)"); - // TODO: Revise this - if (s->abortScriptProcessing != kAbortLoadGame) - s->executionStackBase = s->_executionStack.size() - 1; + s->executionStackBase = s->_executionStack.size() - 1; s->variablesSegment[VAR_TEMP] = s->variablesSegment[VAR_PARAM] = s->_segMan->findSegmentByType(SEG_TYPE_STACK); s->variablesBase[VAR_TEMP] = s->variablesBase[VAR_PARAM] = s->stack_base; |