From 4dc80ffdfe9527865ffc5ce19233a200d94b0245 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 1 Jan 2014 20:06:39 +0200 Subject: NEVERHOOD: Fix the mouse cursor in scene 3, module 3000 (after bridge) Color 255 should be white. Right now, this is a scene-specific workaround to avoid rechecking all scenes just for a glitch that happens in a specific scene. Many thanks to eriktorbjorn for figuring out that this is a palette issue, instead of a resource issue --- engines/neverhood/smackerplayer.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'engines/neverhood/smackerplayer.cpp') diff --git a/engines/neverhood/smackerplayer.cpp b/engines/neverhood/smackerplayer.cpp index 4b4982f68e..b560279857 100644 --- a/engines/neverhood/smackerplayer.cpp +++ b/engines/neverhood/smackerplayer.cpp @@ -21,6 +21,7 @@ */ #include "graphics/palette.h" +#include "neverhood/gamemodule.h" #include "neverhood/smackerplayer.h" #include "neverhood/palette.h" #include "neverhood/resourceman.h" @@ -251,6 +252,15 @@ void SmackerPlayer::updatePalette() { tempPalette[i * 4 + 1] = smackerPalette[i * 3 + 1]; tempPalette[i * 4 + 2] = smackerPalette[i * 3 + 2]; } + + // WORKAROUND: Scene 3, module 3000 defines a black color 255 instead of + // white, which results in the mouse cursor showing black. I'm not sure if + // color 255 is always supposed to be white. It's not feasible to check + // all scenes for a glitch that only seems to manifest in one, therefore + // we define color 255 to be white only for that scene. + if (_vm->_gameModule->getCurrentModuleNum() == 3000 && _vm->_gameState.sceneNum == 3) + tempPalette[255 * 4 + 0] = tempPalette[255 * 4 + 1] = tempPalette[255 * 4 + 2] = 0xFF; + _palette->copyPalette(tempPalette, 0, 256, 0); } -- cgit v1.2.3