diff options
author | sylvaintv | 2011-07-09 02:55:28 +0200 |
---|---|---|
committer | sylvaintv | 2011-07-09 02:55:28 +0200 |
commit | 36222c747fb2feb35d8e3b8fae3e9e4eb7657111 (patch) | |
tree | d88bc436d362f1b710069ad4530f40ec37479a62 /engines/toon/picture.cpp | |
parent | 53985000db22e2897626e2bf26d93d7241726323 (diff) | |
download | scummvm-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.cpp | 11 |
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); |