diff options
author | Filippos Karapetis | 2014-01-01 20:06:39 +0200 |
---|---|---|
committer | Filippos Karapetis | 2014-01-01 20:08:44 +0200 |
commit | 4dc80ffdfe9527865ffc5ce19233a200d94b0245 (patch) | |
tree | c35e1224951b61c984fa70bd361c3bfd98b529f3 /engines/neverhood | |
parent | bade0e45b0ca0b550019a9bd3cea92a186300dcf (diff) | |
download | scummvm-rg350-4dc80ffdfe9527865ffc5ce19233a200d94b0245.tar.gz scummvm-rg350-4dc80ffdfe9527865ffc5ce19233a200d94b0245.tar.bz2 scummvm-rg350-4dc80ffdfe9527865ffc5ce19233a200d94b0245.zip |
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
Diffstat (limited to 'engines/neverhood')
-rw-r--r-- | engines/neverhood/smackerplayer.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
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); } |