aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/screen_lol.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2009-10-11 18:40:21 +0000
committerFlorian Kagerer2009-10-11 18:40:21 +0000
commit16e852159a57d59f4b57a2752a50eb7611c5ab78 (patch)
treea4c1571b2d51dbc4ea2b62880f06a34da2c040e2 /engines/kyra/screen_lol.cpp
parent6fda9a5067ca642ccf569a0845e170a6a74ce442 (diff)
downloadscummvm-rg350-16e852159a57d59f4b57a2752a50eb7611c5ab78.tar.gz
scummvm-rg350-16e852159a57d59f4b57a2752a50eb7611c5ab78.tar.bz2
scummvm-rg350-16e852159a57d59f4b57a2752a50eb7611c5ab78.zip
LOL/PC-98: fix king richard healing sequence
svn-id: r44936
Diffstat (limited to 'engines/kyra/screen_lol.cpp')
-rw-r--r--engines/kyra/screen_lol.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/engines/kyra/screen_lol.cpp b/engines/kyra/screen_lol.cpp
index 4feabffa62..284158e586 100644
--- a/engines/kyra/screen_lol.cpp
+++ b/engines/kyra/screen_lol.cpp
@@ -939,16 +939,17 @@ bool Screen_LoL::fadePaletteStep(uint8 *pal1, uint8 *pal2, uint32 elapsedTime, u
}
Palette **Screen_LoL::generateFadeTable(Palette **dst, Palette *src1, Palette *src2, int numTabs) {
- if (!src1)
+ int len = _use16ColorMode ? 48 : 768;
+ if (!src1)
src1 = _screenPalette;
-
+
uint8 *p1 = (*dst++)->getData();
uint8 *p2 = src1->getData();
uint8 *p3 = src2->getData();
uint8 *p4 = p1;
uint8 *p5 = p2;
- for (int i = 0; i < 768; i++) {
+ for (int i = 0; i < len; i++) {
int8 val = (int8)*p3++ - (int8)*p2++;
*p4++ = (uint8)val;
}
@@ -962,13 +963,13 @@ Palette **Screen_LoL::generateFadeTable(Palette **dst, Palette *src1, Palette *s
t += d;
p4 = (*dst++)->getData();
- for (int ii = 0; ii < 768; ii++) {
+ for (int ii = 0; ii < len; ii++) {
int16 val = (((int8)*p3++ * t) >> 8) + (int8)*p2++;
*p4++ = (uint8)val;
}
}
- memcpy(p1, p5, 768);
+ memcpy(p1, p5, len);
(*dst)->copy(*src2);
return ++dst;