aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsylvaintv2011-04-17 14:18:29 +0200
committersylvaintv2011-04-17 14:18:29 +0200
commita383fe452f5b62a74fc92b8734425bd8ab793402 (patch)
tree4bb265229817881db6d5d25ff4aa1668f25b4907
parentf79b91548de6daf2c3bf9661e2a002b23744e99e (diff)
downloadscummvm-rg350-a383fe452f5b62a74fc92b8734425bd8ab793402.tar.gz
scummvm-rg350-a383fe452f5b62a74fc92b8734425bd8ab793402.tar.bz2
scummvm-rg350-a383fe452f5b62a74fc92b8734425bd8ab793402.zip
TOON: Fix palette issues in alligators scene
Bug #3264989: "TOON: Palette problems"
-rw-r--r--engines/toon/toon.cpp6
-rw-r--r--engines/toon/toon.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 2040668245..1bc53e0e20 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -843,6 +843,7 @@ ToonEngine::ToonEngine(OSystem *syst, const ADGameDescription *gameDescription)
_backupPalette = NULL;
_additionalPalette1 = NULL;
_additionalPalette2 = NULL;
+ _additionalPalette2Present = false;
_cutawayPalette = NULL;
_universalPalette = NULL;
_fluxPalette = NULL;
@@ -1148,6 +1149,7 @@ void ToonEngine::loadScene(int32 SceneId, bool forGameLoad) {
strcat(temp, ".NPP");
loadAdditionalPalette(temp, 0);
+ _additionalPalette2Present = false;
strcpy(temp, state()->_locations[SceneId]._name);
strcat(temp, ".NP2");
loadAdditionalPalette(temp, 1);
@@ -1318,6 +1320,7 @@ void ToonEngine::loadAdditionalPalette(Common::String fileName, int32 mode) {
case 1:
memcpy(_additionalPalette2, palette, 69);
fixPaletteEntries(_additionalPalette2, 23);
+ _additionalPalette2Present = true;
break;
case 2:
memcpy(_cutawayPalette, palette, size);
@@ -1786,7 +1789,8 @@ void ToonEngine::flipScreens() {
if (_gameState->_inCloseUp) {
_gameState->_currentScrollValue = TOON_SCREEN_WIDTH;
setPaletteEntries(_cutawayPalette, 1, 128);
- setPaletteEntries(_additionalPalette2, 232, 23);
+ if (_additionalPalette2Present)
+ setPaletteEntries(_additionalPalette2, 232, 23);
} else {
_gameState->_currentScrollValue = 0;
_currentPicture->setupPalette();
diff --git a/engines/toon/toon.h b/engines/toon/toon.h
index 3554900684..373437d658 100644
--- a/engines/toon/toon.h
+++ b/engines/toon/toon.h
@@ -352,6 +352,7 @@ protected:
uint8 *_backupPalette;
uint8 *_additionalPalette1;
uint8 *_additionalPalette2;
+ bool _additionalPalette2Present;
uint8 *_cutawayPalette;
uint8 *_universalPalette;
uint8 *_fluxPalette;