aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/savegame.cpp
diff options
context:
space:
mode:
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);
}
}