diff options
-rw-r--r-- | engines/kyra/screen_lol.cpp | 3 | ||||
-rw-r--r-- | engines/kyra/script_lol.cpp | 22 |
2 files changed, 18 insertions, 7 deletions
diff --git a/engines/kyra/screen_lol.cpp b/engines/kyra/screen_lol.cpp index 8deb43356f..bd37945fae 100644 --- a/engines/kyra/screen_lol.cpp +++ b/engines/kyra/screen_lol.cpp @@ -835,6 +835,9 @@ void Screen_LoL::copyColor(int dstColorIndex, int srcColorIndex) { } bool Screen_LoL::fadeColor(int dstColorIndex, int srcColorIndex, uint32 elapsedTime, uint32 targetTime) { + if (_use16ColorMode) + return false; + const uint8 *dst = _screenPalette->getData() + 3 * dstColorIndex; const uint8 *src = _screenPalette->getData() + 3 * srcColorIndex; uint8 *p = getPalette(1).getData() + 3 * dstColorIndex; diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp index 956143106d..6d17218f67 100644 --- a/engines/kyra/script_lol.cpp +++ b/engines/kyra/script_lol.cpp @@ -869,9 +869,13 @@ int LoLEngine::olol_fadeClearSceneWindow(EMCState *script) { int LoLEngine::olol_fadeSequencePalette(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_fadeSequencePalette(%p)", (const void *)script); - _screen->getPalette(3).copy(_screen->getPalette(0), 128); - _screen->loadSpecialColors(_screen->getPalette(3)); - _screen->fadePalette(_screen->getPalette(3), 10); + if (_flags.use16ColorMode) { + setPaletteBrightness(_screen->getPalette(0), _brightness, _lampEffect); + } else { + _screen->getPalette(3).copy(_screen->getPalette(0), 128); + _screen->loadSpecialColors(_screen->getPalette(3)); + _screen->fadePalette(_screen->getPalette(3), 10); + } _screen->_fadeFlag = 0; return 1; } @@ -2430,9 +2434,13 @@ int LoLEngine::tlol_fadeClearWindow(const TIM *tim, const uint16 *param) { break; case 1: - _screen->getPalette(3).copy(_screen->getPalette(0), 128); - _screen->loadSpecialColors(_screen->getPalette(3)); - _screen->fadePalette(_screen->getPalette(3), 10); + if (_flags.use16ColorMode) { + _screen->fadePalette(_screen->getPalette(1), 10); + } else { + _screen->getPalette(3).copy(_screen->getPalette(0), 128); + _screen->loadSpecialColors(_screen->getPalette(3)); + _screen->fadePalette(_screen->getPalette(3), 10); + } _screen->_fadeFlag = 0; break; @@ -2442,7 +2450,7 @@ int LoLEngine::tlol_fadeClearWindow(const TIM *tim, const uint16 *param) { case 3: _screen->loadSpecialColors(_screen->getPalette(3)); - _screen->fadePalette(_screen->getPalette(3), 10); + _screen->fadePalette(_screen->getPalette(_flags.use16ColorMode ? 1 : 3), 10); _screen->_fadeFlag = 0; break; |