aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/screen_lol.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2009-09-19 13:17:55 +0000
committerFlorian Kagerer2009-09-19 13:17:55 +0000
commit8f4bba878f6da8958b8040ccc0d7297d5d252f3d (patch)
treeda2b1fecf742ffca9e95f4b6f58ca4379c9e245e /engines/kyra/screen_lol.cpp
parentba659f50aea106492467baec227fec431365b80f (diff)
downloadscummvm-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.cpp20
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);
}