diff options
author | Filippos Karapetis | 2012-11-07 18:11:09 +0200 |
---|---|---|
committer | Filippos Karapetis | 2012-11-07 18:11:09 +0200 |
commit | 3b5e92d4f3ce587bb8fce0251fa62a4c25a5a6d9 (patch) | |
tree | 8d3fa28e5f28a971a72b602d5bbf3ec8f6217ebb | |
parent | 2c5769c23b4c91d7ed2e4f4434a05f0fdcec95d1 (diff) | |
download | scummvm-rg350-3b5e92d4f3ce587bb8fce0251fa62a4c25a5a6d9.tar.gz scummvm-rg350-3b5e92d4f3ce587bb8fce0251fa62a4c25a5a6d9.tar.bz2 scummvm-rg350-3b5e92d4f3ce587bb8fce0251fa62a4c25a5a6d9.zip |
SCI: Fix bug #3575569 - "SCI: QFG1VGA: Palette/hue bug after loading"
We make sure that any leftover palVary timers are removed when
loading. This is an edge case, but it won't hurt to remove these
timers just in case
-rw-r--r-- | engines/sci/engine/savegame.cpp | 4 | ||||
-rw-r--r-- | engines/sci/graphics/palette.h | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index ff3f19b53d..2a39f24ecd 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -878,6 +878,10 @@ void gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) { } } + // Remove the palVary effect timer, if there is one running currently. + // Fixes bug #3575569. + g_sci->_gfxPalette->palVaryRemoveTimer(); + // We don't need the thumbnail here, so just read it and discard it Graphics::skipThumbnail(*fh); diff --git a/engines/sci/graphics/palette.h b/engines/sci/graphics/palette.h index e974781d49..1ca1f2dbb7 100644 --- a/engines/sci/graphics/palette.h +++ b/engines/sci/graphics/palette.h @@ -105,6 +105,8 @@ public: byte findMacIconBarColor(byte r, byte g, byte b); bool colorIsFromMacClut(byte index); + void palVaryRemoveTimer(); + #ifdef ENABLE_SCI32 bool loadClut(uint16 clutId); byte matchClutColor(uint16 color); @@ -114,7 +116,6 @@ public: private: void palVaryInit(); void palVaryInstallTimer(); - void palVaryRemoveTimer(); bool palVaryLoadTargetPalette(GuiResourceId resourceId); static void palVaryCallback(void *refCon); void palVaryIncreaseSignal(); |