diff options
author | Max Horn | 2009-07-28 23:19:33 +0000 |
---|---|---|
committer | Max Horn | 2009-07-28 23:19:33 +0000 |
commit | eb9600b5e95f105736f01b9adbbd603e69b51638 (patch) | |
tree | 74de124830c9592b62f7a69222340207264f2c82 /engines/scumm/saveload.cpp | |
parent | caacc3a6df66f036c4b3e7db89960d018af3d51c (diff) | |
download | scummvm-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.cpp | 19 |
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); |