diff options
| -rw-r--r-- | engines/tinsel/saveload.cpp | 5 | ||||
| -rw-r--r-- | engines/tinsel/serializer.h | 12 | 
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)  | 
