[Scummvm-cvs-logs] scummvm master -> 39cbfbb03fc9fbef1402738df3ed8f79faadccaf

criezy criezy at scummvm.org
Mon May 30 23:26:10 CEST 2016


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:
39cbfbb03f GNAP: Fix sprites display on big endian systems


Commit: 39cbfbb03fc9fbef1402738df3ed8f79faadccaf
    https://github.com/scummvm/scummvm/commit/39cbfbb03fc9fbef1402738df3ed8f79faadccaf
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2016-05-30T22:21:49+01:00

Commit Message:
GNAP: Fix sprites display on big endian systems

Changed paths:
    engines/gnap/gamesys.cpp
    engines/gnap/resource.cpp



diff --git a/engines/gnap/gamesys.cpp b/engines/gnap/gamesys.cpp
index d1f2c89..f56974f 100644
--- a/engines/gnap/gamesys.cpp
+++ b/engines/gnap/gamesys.cpp
@@ -249,7 +249,11 @@ void GameSys::drawSpriteToBackground(int x, int y, int resourceId) {
 Graphics::Surface *GameSys::allocSurface(int width, int height) {
 	Graphics::Surface *surface = new Graphics::Surface();
 	surface->create(width, height, _backgroundSurface->format);
+#if defined(SCUMM_BIG_ENDIAN)
+	surface->fillRect(Common::Rect(0, 0, surface->w, surface->h), 0x00FFFFFF);
+#else
 	surface->fillRect(Common::Rect(0, 0, surface->w, surface->h), 0xFFFFFF00);
+#endif
 	return surface;
 }
 
diff --git a/engines/gnap/resource.cpp b/engines/gnap/resource.cpp
index 8244213..c639008 100644
--- a/engines/gnap/resource.cpp
+++ b/engines/gnap/resource.cpp
@@ -101,6 +101,10 @@ SpriteResource::SpriteResource(byte *data, uint32 size) {
 	_colorsCount = READ_LE_UINT16(_data + 10);
 	_palette = (uint32 *)(_data + 12);
 	_pixels = _data + 12 + _colorsCount * 4;
+#if defined(SCUMM_BIG_ENDIAN)
+	for (uint16 c = 0; c < _colorsCount; ++c)
+		_palette[c] = SWAP_BYTES_32(_palette[c]);
+#endif
 	debugC(kDebugBasic, "SpriteResource() width: %d; height: %d; colorsCount: %d", _width, _height, _colorsCount);
 }
 






More information about the Scummvm-git-logs mailing list