aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/saveload.cpp
diff options
context:
space:
mode:
authorMax Horn2009-07-28 23:19:33 +0000
committerMax Horn2009-07-28 23:19:33 +0000
commiteb9600b5e95f105736f01b9adbbd603e69b51638 (patch)
tree74de124830c9592b62f7a69222340207264f2c82 /engines/scumm/saveload.cpp
parentcaacc3a6df66f036c4b3e7db89960d018af3d51c (diff)
downloadscummvm-rg350-eb9600b5e95f105736f01b9adbbd603e69b51638.tar.gz
scummvm-rg350-eb9600b5e95f105736f01b9adbbd603e69b51638.tar.bz2
scummvm-rg350-eb9600b5e95f105736f01b9adbbd603e69b51638.zip
SCUMM: Moved _inventoryOffset to ScummEngine_v2 and save it.
Fixes bug #2828417: Zak V2: inventory position isn't reset when loading. svn-id: r42870
Diffstat (limited to 'engines/scumm/saveload.cpp')
-rw-r--r--engines/scumm/saveload.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp
index d906760243..aa046dc6dd 100644
--- a/engines/scumm/saveload.cpp
+++ b/engines/scumm/saveload.cpp
@@ -1382,7 +1382,7 @@ void ScummEngine::saveOrLoad(Serializer *s) {
}
void ScummEngine_v0::saveOrLoad(Serializer *s) {
- ScummEngine::saveOrLoad(s);
+ ScummEngine_v2::saveOrLoad(s);
const SaveLoadEntry v0Entrys[] = {
MKLINE(ScummEngine_v0, _currentMode, sleByte, VER(78)),
@@ -1392,6 +1392,23 @@ void ScummEngine_v0::saveOrLoad(Serializer *s) {
s->saveLoadEntries(this, v0Entrys);
}
+
+void ScummEngine_v2::saveOrLoad(Serializer *s) {
+ ScummEngine::saveOrLoad(s);
+
+ const SaveLoadEntry v2Entrys[] = {
+ MKLINE(ScummEngine_v2, _inventoryOffset, sleUint16, VER(79)),
+ MKEND()
+ };
+ s->saveLoadEntries(this, v2Entrys);
+
+ // In old saves we didn't store _inventoryOffset -> reset it to
+ // a sane default when loading one of those.
+ if (s->getVersion() < 79 && s->isLoading()) {
+ _inventoryOffset = 0;
+ }
+}
+
void ScummEngine_v5::saveOrLoad(Serializer *s) {
ScummEngine::saveOrLoad(s);