aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/savegame.cpp
diff options
context:
space:
mode:
authorColin Snover2017-04-22 20:44:51 -0500
committerColin Snover2017-04-23 13:07:25 -0500
commitd24f5537be84ac175e85ed15415c8b3c0e00674d (patch)
tree8755aafe0b64e65a263b00a62e94c28f2bf1f3ec /engines/sci/engine/savegame.cpp
parentb3ecc54a7a3023a648378771f543b060f46f7fae (diff)
downloadscummvm-rg350-d24f5537be84ac175e85ed15415c8b3c0e00674d.tar.gz
scummvm-rg350-d24f5537be84ac175e85ed15415c8b3c0e00674d.tar.bz2
scummvm-rg350-d24f5537be84ac175e85ed15415c8b3c0e00674d.zip
SCI32: Implement SCI3 Script::syncStringHeap
Diffstat (limited to 'engines/sci/engine/savegame.cpp')
-rw-r--r--engines/sci/engine/savegame.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index 04715d6034..4c16770fc5 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -478,7 +478,10 @@ void Script::syncStringHeap(Common::Serializer &s) {
const int length = _heap.size() - (buf - _heap);
s.syncBytes(buf.getUnsafeDataAt(0, length), length);
} else if (getSciVersion() == SCI_VERSION_3) {
- warning("TODO: syncStringHeap(): Implement SCI3 variant");
+ const int stringOffset = _buf->getInt32SEAt(4);
+ const int length = _buf->getInt32SEAt(8) - stringOffset;
+ SciSpan<byte> buf = _buf->subspan<byte>(stringOffset, length);
+ s.syncBytes(buf.getUnsafeDataAt(0, length), length);
}
}