aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorFilippos Karapetis2010-07-22 12:38:48 +0000
committerFilippos Karapetis2010-07-22 12:38:48 +0000
commit8eca9d6acb55ae121145ca5779c493244a6499f3 (patch)
treecb90af6022b1310c4bb5241f139ba1d261c51bd8 /engines/sci/engine
parenta01152a3bacdeec06a4206b939bcfc1dc2c8ee65 (diff)
downloadscummvm-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.cpp1
-rw-r--r--engines/sci/engine/vm.cpp4
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;