aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2015-04-22 05:06:13 -0500
committerPaul Gilbert2015-04-22 05:06:13 -0500
commit0fc29972804c12ad9b051574a6e0588ff2b065ee (patch)
treeadee9578ed4ebeccbae59c0d79dc5753305fe8b8
parent27938653a5cd05856da88142f52de44f30e26eef (diff)
downloadscummvm-rg350-0fc29972804c12ad9b051574a6e0588ff2b065ee.tar.gz
scummvm-rg350-0fc29972804c12ad9b051574a6e0588ff2b065ee.tar.bz2
scummvm-rg350-0fc29972804c12ad9b051574a6e0588ff2b065ee.zip
SHERLOCK: Fixes for saving and restoring games
-rw-r--r--engines/sherlock/events.cpp1
-rw-r--r--engines/sherlock/scene.cpp6
2 files changed, 6 insertions, 1 deletions
diff --git a/engines/sherlock/events.cpp b/engines/sherlock/events.cpp
index f7b473ff7a..f83219d7d2 100644
--- a/engines/sherlock/events.cpp
+++ b/engines/sherlock/events.cpp
@@ -54,6 +54,7 @@ void Events::loadCursors(const Common::String &filename) {
delete _cursorImages;
_cursorImages = new ImageFile(filename);
+ _cursorId = INVALID_CURSOR;
}
/**
diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp
index 4671dbdade..316b8739b1 100644
--- a/engines/sherlock/scene.cpp
+++ b/engines/sherlock/scene.cpp
@@ -1463,7 +1463,11 @@ void Scene::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_overPos.x);
s.syncAsSint16LE(_overPos.y);
s.syncAsSint16LE(_oldCharPoint);
- s.syncAsSint16LE(_goToScene);
+
+ if (s.isSaving())
+ s.syncAsSint16LE(_currentScene);
+ else
+ s.syncAsSint16LE(_goToScene);
for (int sceneNum = 0; sceneNum < SCENES_COUNT; ++sceneNum) {
for (int flag = 0; flag < 65; ++flag) {