[Scummvm-git-logs] scummvm master -> 3619b613bcf92386c62b4c23fed62502bbdd712d

peterkohaut peterkohaut at users.noreply.github.com
Tue Nov 26 21:16:23 UTC 2019


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
3619b613bc BLADERUNNER: Fixed crossplatform thumbnails in saves


Commit: 3619b613bcf92386c62b4c23fed62502bbdd712d
    https://github.com/scummvm/scummvm/commit/3619b613bcf92386c62b4c23fed62502bbdd712d
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-11-26T22:15:27+01:00

Commit Message:
BLADERUNNER: Fixed crossplatform thumbnails in saves

Thumbnail was broken when savefile was transfered between big endiang
and little endian platforms.

closes #11258

Changed paths:
    engines/bladerunner/bladerunner.cpp
    engines/bladerunner/savefile.cpp


diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 21ebebc..3493c8a 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -2043,7 +2043,12 @@ bool BladeRunnerEngine::saveGame(Common::WriteStream &stream, Graphics::Surface
 	SaveFileWriteStream s(memoryStream);
 
 	thumbnail.convertToInPlace(gameDataPixelFormat());
-	s.write(thumbnail.getPixels(), SaveFileManager::kThumbnailSize);
+
+	uint16* thumbnailData = (uint16*)thumbnail.getPixels();
+	for (uint i = 0; i < SaveFileManager::kThumbnailSize / 2; ++i) {
+		s.writeUint16LE(thumbnailData[i]);
+	}
+
 	s.writeFloat(1.0f);
 	_settings->save(s);
 	_scene->save(s);
@@ -2126,8 +2131,9 @@ bool BladeRunnerEngine::loadGame(Common::SeekableReadStream &stream) {
 
 	_gameIsLoading = true;
 	_settings->setLoadingGame();
+
 	s.skip(SaveFileManager::kThumbnailSize); // skip the thumbnail
-	s.skip(4);// always float 1.0, but never used
+	s.skip(4);// always float 1.0, but never used, assuming it's the game version
 	_settings->load(s);
 	_scene->load(s);
 	_scene->_exits->load(s);
diff --git a/engines/bladerunner/savefile.cpp b/engines/bladerunner/savefile.cpp
index 1ea1a88..7a0739b 100644
--- a/engines/bladerunner/savefile.cpp
+++ b/engines/bladerunner/savefile.cpp
@@ -146,8 +146,10 @@ bool SaveFileManager::readHeader(Common::SeekableReadStream &in, SaveFileHeader
 
 		s.skip(4); //skip size;
 
-		void *thumbnailData = malloc(kThumbnailSize); // freed by ScummVM's smartptr
-		s.read(thumbnailData, kThumbnailSize);
+		uint16 *thumbnailData = (uint16*)malloc(kThumbnailSize); // freed by ScummVM's smartptr
+		for (uint i = 0; i < kThumbnailSize / 2; ++i) {
+			thumbnailData[i] = s.readUint16LE();
+		}
 
 		header._thumbnail->init(80, 60, 160, thumbnailData, gameDataPixelFormat());
 




More information about the Scummvm-git-logs mailing list