[Scummvm-cvs-logs] scummvm master -> 36222c747fb2feb35d8e3b8fae3e9e4eb7657111

sylvaintv sylvaintv at gmail.com
Sat Jul 9 02:57:28 CEST 2011


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:
36222c747f TOON: Fixed palette problem in LoadPicture


Commit: 36222c747fb2feb35d8e3b8fae3e9e4eb7657111
    https://github.com/scummvm/scummvm/commit/36222c747fb2feb35d8e3b8fae3e9e4eb7657111
Author: sylvaintv (sylvaintv at gmail.com)
Date: 2011-07-08T17:55:28-07:00

Commit Message:
TOON: Fixed palette problem in LoadPicture

Bug #3325272: "Toonstruck (Spanish) Bad Graphic in squirrel book"

Was a "full" palette in spanish and a "half" palette in english version.
Made it choose the good mode automatically based on color count.

Changed paths:
    engines/toon/picture.cpp
    engines/toon/picture.h
    engines/toon/toon.cpp



diff --git a/engines/toon/picture.cpp b/engines/toon/picture.cpp
index 0257964..295e304 100644
--- a/engines/toon/picture.cpp
+++ b/engines/toon/picture.cpp
@@ -29,16 +29,14 @@
 
 namespace Toon {
 
-bool Picture::loadPicture(Common::String file, bool totalPalette /*= false*/) {
-	debugC(1, kDebugPicture, "loadPicture(%s, %d)", file.c_str(), (totalPalette) ? 1 : 0);
+bool Picture::loadPicture(Common::String file) {
+	debugC(1, kDebugPicture, "loadPicture(%s)", file.c_str());
 
 	uint32 size = 0;
 	uint8 *fileData = _vm->resources()->getFileData(file, &size);
 	if (!fileData)
 		return false;
 
-	_useFullPalette = totalPalette;
-
 	uint32 compId = READ_BE_UINT32(fileData);
 
 	switch (compId) {
@@ -57,6 +55,8 @@ bool Picture::loadPicture(Common::String file, bool totalPalette /*= false*/) {
 
 		// do we have a palette ?
 		_paletteEntries = (dstsize & 0x7ff) / 3;
+		_useFullPalette = (_paletteEntries == 256);
+		//	_useFullPalette = true;
 		if (_paletteEntries) {
 			_palette = new uint8[_paletteEntries * 3];
 			memcpy(_palette, _data + dstsize - (dstsize & 0x7ff), _paletteEntries * 3);
@@ -70,7 +70,8 @@ bool Picture::loadPicture(Common::String file, bool totalPalette /*= false*/) {
 		uint32 decSize = READ_LE_UINT32(fileData + 10);
 		_data = new uint8[decSize + 100];
 		_paletteEntries = READ_LE_UINT16(fileData + 14) / 3;
-
+		_useFullPalette = (_paletteEntries == 256);
+		
 		if (_paletteEntries) {
 			_palette = new uint8[_paletteEntries * 3];
 			memcpy(_palette, fileData + 16, _paletteEntries * 3);
diff --git a/engines/toon/picture.h b/engines/toon/picture.h
index 23edbc9..ee0e006 100644
--- a/engines/toon/picture.h
+++ b/engines/toon/picture.h
@@ -38,7 +38,7 @@ class Picture {
 public:
 	Picture(ToonEngine *vm);
 	~Picture();
-	bool loadPicture(Common::String file, bool totalPalette = false);
+	bool loadPicture(Common::String file);
 	void setupPalette();
 	void draw(Graphics::Surface &surface, int32 x, int32 y, int32 dx, int32 dy);
 	void drawWithRectList(Graphics::Surface& surface, int32 x, int32 y, int32 dx, int32 dy, Common::Array<Common::Rect>& rectArray);
diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 26639d7..c261ca1 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -614,7 +614,7 @@ struct MainMenuEntry {
 
 bool ToonEngine::showMainmenu(bool &loadedGame) {
 	Picture *mainmenuPicture = new Picture(this);
-	mainmenuPicture->loadPicture("TITLESCR.CPS", true);
+	mainmenuPicture->loadPicture("TITLESCR.CPS");
 	mainmenuPicture->setupPalette();
 	flushPalette(false);
 
@@ -2600,7 +2600,7 @@ int32 ToonEngine::showInventory() {
 	delete _inventoryPicture;
 	_inventoryPicture = new Picture(this);
 	fadeOut(5);
-	_inventoryPicture->loadPicture("SACK128.CPS", true);
+	_inventoryPicture->loadPicture("SACK128.CPS");
 	_inventoryPicture->setupPalette();
 	dirtyAllScreen();
 
@@ -2786,7 +2786,7 @@ void ToonEngine::showCutaway(Common::String cutawayPicture) {
 	if (cutawayPicture == "") {
 		cutawayPicture = Common::String(_gameState->_locations[_gameState->_currentScene]._cutaway) + ".CPS";
 	}
-	_currentCutaway->loadPicture(cutawayPicture, false);
+	_currentCutaway->loadPicture(cutawayPicture);
 	_currentCutaway->setupPalette();
 	_oldScrollValue = _gameState->_currentScrollValue;
 	_gameState->_currentScrollValue = 0;
@@ -3418,7 +3418,7 @@ void ToonEngine::viewInventoryItem(Common::String str, int32 lineId, int32 itemD
 	fadeOut(5);
 
 	Picture *pic = new Picture(this);
-	pic->loadPicture(str, false);
+	pic->loadPicture(str);
 	pic->setupPalette();
 	dirtyAllScreen();
 	flushPalette();






More information about the Scummvm-git-logs mailing list