aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2009-03-12 03:26:03 +0000
committerMax Horn2009-03-12 03:26:03 +0000
commit25b39e217a2734afcb2928a46e7471e2845bc51b (patch)
tree00d77bbc51599f4ba0e629e1b6bfe02bc487a15b
parentca4bdb8572cd5da8e2457f91c62b44578913dca0 (diff)
downloadscummvm-rg350-25b39e217a2734afcb2928a46e7471e2845bc51b.tar.gz
scummvm-rg350-25b39e217a2734afcb2928a46e7471e2845bc51b.tar.bz2
scummvm-rg350-25b39e217a2734afcb2928a46e7471e2845bc51b.zip
TINSEL: Added Serializer::skip() convenience method
svn-id: r39350
-rw-r--r--engines/tinsel/saveload.cpp5
-rw-r--r--engines/tinsel/serializer.h12
2 files changed, 12 insertions, 5 deletions
diff --git a/engines/tinsel/saveload.cpp b/engines/tinsel/saveload.cpp
index 139f385bb7..13c1fc58f2 100644
--- a/engines/tinsel/saveload.cpp
+++ b/engines/tinsel/saveload.cpp
@@ -149,10 +149,7 @@ static bool syncSaveGameHeader(Serializer &s, SaveGameHeader &hdr) {
if (tmp < 0 || hdr.id != SAVEGAME_ID || hdr.ver > CURRENT_VER || hdr.size > 1024)
return false;
// Skip over any extra bytes
- while (tmp-- > 0) {
- byte b = 0;
- s.syncAsByte(b);
- }
+ s.skip(tmp);
return true;
}
diff --git a/engines/tinsel/serializer.h b/engines/tinsel/serializer.h
index 8984cb4757..cfb528776f 100644
--- a/engines/tinsel/serializer.h
+++ b/engines/tinsel/serializer.h
@@ -61,7 +61,7 @@ public:
uint bytesSynced() const { return _bytesSynced; }
- void syncBytes(byte *buf, uint16 size) {
+ void syncBytes(byte *buf, uint32 size) {
if (_loadStream)
_loadStream->read(buf, size);
else
@@ -69,6 +69,16 @@ public:
_bytesSynced += size;
}
+ void skip(uint32 size) {
+ if (_loadStream)
+ _loadStream->skip(size);
+ else {
+ while (size--)
+ _saveStream->writeByte(0);
+ }
+ _bytesSynced += size;
+ }
+
SYNC_AS(Byte, byte, 1)
SYNC_AS(Uint16LE, uint16, 2)