aboutsummaryrefslogtreecommitdiff
path: root/engines/toon/picture.cpp
diff options
context:
space:
mode:
authorsylvaintv2011-07-09 02:55:28 +0200
committersylvaintv2011-07-09 02:55:28 +0200
commit36222c747fb2feb35d8e3b8fae3e9e4eb7657111 (patch)
treed88bc436d362f1b710069ad4530f40ec37479a62 /engines/toon/picture.cpp
parent53985000db22e2897626e2bf26d93d7241726323 (diff)
downloadscummvm-rg350-36222c747fb2feb35d8e3b8fae3e9e4eb7657111.tar.gz
scummvm-rg350-36222c747fb2feb35d8e3b8fae3e9e4eb7657111.tar.bz2
scummvm-rg350-36222c747fb2feb35d8e3b8fae3e9e4eb7657111.zip
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.
Diffstat (limited to 'engines/toon/picture.cpp')
-rw-r--r--engines/toon/picture.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/engines/toon/picture.cpp b/engines/toon/picture.cpp
index 0257964fb5..295e304765 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);