aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/savegame.cpp
diff options
context:
space:
mode:
authorColin Snover2017-04-17 11:25:31 -0500
committerColin Snover2017-04-23 13:07:25 -0500
commit6f95b1a440c8579a5010c39ca84e2c5fcdfac682 (patch)
treec70a3c4d97a74fed5dde01548698d38bb873eae0 /engines/sci/engine/savegame.cpp
parenta2d7851e4ddb7c3858b5ee89b95daccf3dfa5531 (diff)
downloadscummvm-rg350-6f95b1a440c8579a5010c39ca84e2c5fcdfac682.tar.gz
scummvm-rg350-6f95b1a440c8579a5010c39ca84e2c5fcdfac682.tar.bz2
scummvm-rg350-6f95b1a440c8579a5010c39ca84e2c5fcdfac682.zip
SCI32: Fix missing mustSetViewVisible data in cloned objects
This information comes directly from script data and is not modified at runtime, so it does not need to be persisted in save games, but does need to be set when reconstructing clones.
Diffstat (limited to 'engines/sci/engine/savegame.cpp')
-rw-r--r--engines/sci/engine/savegame.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index 433878429e..427e32deb3 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -104,10 +104,6 @@ void syncWithSerializer(Common::Serializer &s, Node &obj) {
syncWithSerializer(s, obj.value);
}
-void syncWithSerializer(Common::Serializer &s, bool &obj) {
- s.syncAsByte(obj);
-}
-
#pragma mark -
// By default, sync using syncWithSerializer, which in turn can easily be overloaded.
@@ -427,12 +423,20 @@ void Object::saveLoadWithSerializer(Common::Serializer &s) {
s.syncAsSint32LE(_methodCount); // that's actually a uint16
syncArray<reg_t>(s, _variables);
+
+#ifdef ENABLE_SCI32
if (s.getVersion() >= 42 && getSciVersion() == SCI_VERSION_3) {
- syncArray<bool>(s, _mustSetViewVisible);
+ // Obsolete mustSetViewVisible array
+ if (s.getVersion() == 42 && s.isLoading()) {
+ uint32 len;
+ s.syncAsUint32LE(len);
+ s.skip(len);
+ }
syncWithSerializer(s, _superClassPosSci3);
syncWithSerializer(s, _speciesSelectorSci3);
syncWithSerializer(s, _infoSelectorSci3);
}
+#endif
}