aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorMartin Kiewitz2009-12-08 20:54:18 +0000
committerMartin Kiewitz2009-12-08 20:54:18 +0000
commita2d7505e8118bd7af5fe8f3f2a184af5e6ac3834 (patch)
treeca3e51302f4edaf656c22651825ada191e3175c1 /engines/sci/engine
parent5f178e86500b93d6d0c5fb65ce2908522319e703 (diff)
downloadscummvm-rg350-a2d7505e8118bd7af5fe8f3f2a184af5e6ac3834.tar.gz
scummvm-rg350-a2d7505e8118bd7af5fe8f3f2a184af5e6ac3834.tar.bz2
scummvm-rg350-a2d7505e8118bd7af5fe8f3f2a184af5e6ac3834.zip
SCI: Saving picPort now (fixes loading saved games in castle of dr. brain)
svn-id: r46292
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/savegame.cpp15
-rw-r--r--engines/sci/engine/savegame.h2
2 files changed, 16 insertions, 1 deletions
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index 90694cf84f..fb4e658b54 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -340,6 +340,21 @@ void EngineState::saveLoadWithSerializer(Common::Serializer &s) {
s.skip(4, VER(12), VER(12)); // obsolete: used to be status_bar_foreground
s.skip(4, VER(12), VER(12)); // obsolete: used to be status_bar_background
+ if (s.getVersion() >= 13) {
+ // Save/Load picPort as well (cause sierra sci also does this)
+ int16 picPortTop, picPortLeft;
+ Common::Rect picPortRect;
+ if (s.isSaving())
+ picPortRect = _gui->getPortPic(&picPortTop, &picPortLeft);
+
+ s.syncBytes((byte *)&picPortRect, sizeof(picPortRect));
+ s.syncAsSint16LE(picPortTop);
+ s.syncAsSint16LE(picPortLeft);
+
+ if (s.isLoading())
+ _gui->setPortPic(picPortRect, picPortTop, picPortLeft, true);
+ }
+
sync_SegManagerPtr(s, resMan, _segMan);
syncArray<Class>(s, _segMan->_classtable);
diff --git a/engines/sci/engine/savegame.h b/engines/sci/engine/savegame.h
index 95f3099f07..ade9715c48 100644
--- a/engines/sci/engine/savegame.h
+++ b/engines/sci/engine/savegame.h
@@ -36,7 +36,7 @@ namespace Sci {
struct EngineState;
enum {
- CURRENT_SAVEGAME_VERSION = 12,
+ CURRENT_SAVEGAME_VERSION = 13,
MINIMUM_SAVEGAME_VERSION = 9
};