diff options
author | Florian Kagerer | 2009-10-13 19:48:41 +0000 |
---|---|---|
committer | Florian Kagerer | 2009-10-13 19:48:41 +0000 |
commit | 73fa80d94088cfac87f4302112bff5c3b2fb9754 (patch) | |
tree | f779d6a429d41df0d55235cb41f874046f2c9605 /engines/kyra/script_lol.cpp | |
parent | 94cd10297406f4b57d6d0d38a3ac3be18311f22b (diff) | |
download | scummvm-rg350-73fa80d94088cfac87f4302112bff5c3b2fb9754.tar.gz scummvm-rg350-73fa80d94088cfac87f4302112bff5c3b2fb9754.tar.bz2 scummvm-rg350-73fa80d94088cfac87f4302112bff5c3b2fb9754.zip |
LOL/PC-98: fixed outro
svn-id: r45046
Diffstat (limited to 'engines/kyra/script_lol.cpp')
-rw-r--r-- | engines/kyra/script_lol.cpp | 47 |
1 files changed, 31 insertions, 16 deletions
diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp index acc0f7cab6..7f1bd16f22 100644 --- a/engines/kyra/script_lol.cpp +++ b/engines/kyra/script_lol.cpp @@ -2599,27 +2599,35 @@ int LoLEngine::tlol_fadeInScene(const TIM *tim, const uint16 *param) { _screen->loadBitmap(filename, 7, 5, &_screen->getPalette(0)); - filename[0] = 0; + uint8 *overlay = 0; + if (!_flags.use16ColorMode) { + filename[0] = 0; - if (_flags.isTalkie) { - strcpy(filename, _languageExt[_lang]); - strcat(filename, "/"); - } + if (_flags.isTalkie) { + strcpy(filename, _languageExt[_lang]); + strcat(filename, "/"); + } - strcat(filename, overlayFile); - uint8 *overlay = _res->fileData(filename, 0); + strcat(filename, overlayFile); + overlay = _res->fileData(filename, 0); - for (int i = 0; i < 3; ++i) { - uint32 endTime = _system->getMillis() + 10 * _tickLength; - _screen->copyBlockAndApplyOverlayOutro(4, 2, overlay); - _screen->copyRegion(0, 0, 0, 0, 320, 200, 2, 0, Screen::CR_NO_P_CHECK); - _screen->updateScreen(); - delayUntil(endTime); + for (int i = 0; i < 3; ++i) { + uint32 endTime = _system->getMillis() + 10 * _tickLength; + _screen->copyBlockAndApplyOverlayOutro(4, 2, overlay); + _screen->copyRegion(0, 0, 0, 0, 320, 200, 2, 0, Screen::CR_NO_P_CHECK); + _screen->updateScreen(); + delayUntil(endTime); + } } _screen->copyRegion(0, 0, 0, 0, 320, 200, 4, 0, Screen::CR_NO_P_CHECK); - _screen->updateScreen(); - delete[] overlay; + + if (_flags.use16ColorMode) { + _screen->fadePalette(_screen->getPalette(0), 5); + } else { + _screen->updateScreen(); + delete[] overlay; + } return 1; } @@ -2636,7 +2644,14 @@ int LoLEngine::tlol_fadeInPalette(const TIM *tim, const uint16 *param) { Palette pal(_screen->getPalette(0).getNumColors()); _screen->loadBitmap(bitmap, 3, 3, &pal); - _screen->fadePalette(pal, param[1]); + + if (_flags.use16ColorMode) { + _screen->getPalette(0).clear(); + _screen->setScreenPalette(_screen->getPalette(0)); + _screen->copyPage(2, 0); + } + + _screen->fadePalette(pal, param[1]); return 1; } |