diff options
Diffstat (limited to 'engines/sci/graphics')
-rw-r--r-- | engines/sci/graphics/palette.cpp | 8 | ||||
-rw-r--r-- | engines/sci/graphics/palette.h | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/engines/sci/graphics/palette.cpp b/engines/sci/graphics/palette.cpp index b50bf49b4b..af080df281 100644 --- a/engines/sci/graphics/palette.cpp +++ b/engines/sci/graphics/palette.cpp @@ -192,10 +192,14 @@ void GfxPalette::set(Palette *sciPal, bool force, bool forceRealMerge) { bool paletteChanged; if (force || sciPal->timestamp != systime) { - paletteChanged = merge(sciPal, &_sysPalette, force, forceRealMerge); + _sysPaletteChanged |= merge(sciPal, &_sysPalette, force, forceRealMerge); sciPal->timestamp = _sysPalette.timestamp; - if (paletteChanged && _screen->_picNotValid == 0 && systime != _sysPalette.timestamp) + if (_sysPaletteChanged && _screen->_picNotValid == 0) { // && systime != _sysPalette.timestamp) { + // Removed timestamp checking, because this shouldnt be needed anymore. I'm leaving it commented just in + // case this causes regressions setOnScreen(); + _sysPaletteChanged = false; + } } } diff --git a/engines/sci/graphics/palette.h b/engines/sci/graphics/palette.h index 224c03965b..46fec48739 100644 --- a/engines/sci/graphics/palette.h +++ b/engines/sci/graphics/palette.h @@ -75,6 +75,8 @@ private: uint32 _palVaryStart; uint32 _palVaryEnd; + bool _sysPaletteChanged; + Common::Array<PalSchedule> _schedules; }; |