From 7f05e1413c8b7b3913f64ddb29622dcdf40b2c65 Mon Sep 17 00:00:00 2001 From: Littleboy Date: Wed, 1 Aug 2012 02:58:55 -0400 Subject: LASTEXPRESS: Remove use of skip from savegame functions when loading We cannot accurately skip over compressed data as it is not know before decoding how much data will be used --- engines/lastexpress/game/savepoint.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'engines/lastexpress/game') diff --git a/engines/lastexpress/game/savepoint.cpp b/engines/lastexpress/game/savepoint.cpp index 557468e222..6b2dfc5930 100644 --- a/engines/lastexpress/game/savepoint.cpp +++ b/engines/lastexpress/game/savepoint.cpp @@ -242,7 +242,15 @@ void SavePoints::saveLoadWithSerializer(Common::Serializer &s) { } // Skip uninitialized data if any - s.skip((_savePointsMaxSize - dataSize) * 16); + // (we are using a compressed stream, so we cannot seek on load) + uint32 unusedDataSize = (_savePointsMaxSize - dataSize) * 16; + if (s.isLoading()) { + byte *empty = (byte *)malloc(unusedDataSize); + s.syncBytes(empty, unusedDataSize); + free(empty); + } else { + s.skip(unusedDataSize); + } // Number of savepoints uint32 numSavepoints = _savepoints.size(); -- cgit v1.2.3