diff options
author | Florian Kagerer | 2009-10-11 18:40:21 +0000 |
---|---|---|
committer | Florian Kagerer | 2009-10-11 18:40:21 +0000 |
commit | 16e852159a57d59f4b57a2752a50eb7611c5ab78 (patch) | |
tree | a4c1571b2d51dbc4ea2b62880f06a34da2c040e2 /engines/kyra/screen_lol.cpp | |
parent | 6fda9a5067ca642ccf569a0845e170a6a74ce442 (diff) | |
download | scummvm-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.cpp | 11 |
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; |