diff options
author | Florian Kagerer | 2009-09-19 13:17:55 +0000 |
---|---|---|
committer | Florian Kagerer | 2009-09-19 13:17:55 +0000 |
commit | 8f4bba878f6da8958b8040ccc0d7297d5d252f3d (patch) | |
tree | da2b1fecf742ffca9e95f4b6f58ca4379c9e245e /engines/kyra/screen_lol.cpp | |
parent | ba659f50aea106492467baec227fec431365b80f (diff) | |
download | scummvm-rg350-8f4bba878f6da8958b8040ccc0d7297d5d252f3d.tar.gz scummvm-rg350-8f4bba878f6da8958b8040ccc0d7297d5d252f3d.tar.bz2 scummvm-rg350-8f4bba878f6da8958b8040ccc0d7297d5d252f3d.zip |
LOL: start on pc98 support (still messed up and not working though)
svn-id: r44195
Diffstat (limited to 'engines/kyra/screen_lol.cpp')
-rw-r--r-- | engines/kyra/screen_lol.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/engines/kyra/screen_lol.cpp b/engines/kyra/screen_lol.cpp index ccb9ea1e04..8deb43356f 100644 --- a/engines/kyra/screen_lol.cpp +++ b/engines/kyra/screen_lol.cpp @@ -172,7 +172,7 @@ uint8 *Screen_LoL::generateLevelOverlay(const Palette &srcPal, uint8 *ovl, int o uint8 *d = ovl; *d++ = 0; - for (int i = 1; i != 255; i++) { + for (int i = 1; i != srcPal.getNumColors() - 1; i++) { uint16 a = srcPal[i * 3]; uint8 dr = a - ((((a - r) * (weight >> 1)) << 1) >> 8); a = srcPal[i * 3 + 1]; @@ -320,13 +320,18 @@ void Screen_LoL::fadeClearSceneWindow(int delay) { if (_fadeFlag == 1) return; - Palette tpal(getPalette(0).getNumColors()); - tpal.copy(getPalette(0), 128); + if (_use16ColorMode) { + fadeToBlack(delay); + fillRect(112, 0, 288, 120, 68); + } else { + Palette tpal(getPalette(0).getNumColors()); + tpal.copy(getPalette(0), 128); - loadSpecialColors(tpal); - fadePalette(tpal, delay); + loadSpecialColors(tpal); + fadePalette(tpal, delay); - fillRect(112, 0, 288, 120, 0); + fillRect(112, 0, 288, 120, 0); + } _fadeFlag = 1; } @@ -809,6 +814,9 @@ void Screen_LoL::fadeToPalette1(int delay) { } void Screen_LoL::loadSpecialColors(Palette &dst) { + if (_use16ColorMode) + return; + dst.copy(*_screenPalette, 192, 4); } |