From 16e852159a57d59f4b57a2752a50eb7611c5ab78 Mon Sep 17 00:00:00 2001 From: Florian Kagerer Date: Sun, 11 Oct 2009 18:40:21 +0000 Subject: LOL/PC-98: fix king richard healing sequence svn-id: r44936 --- engines/kyra/screen_lol.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'engines/kyra/screen_lol.cpp') 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; -- cgit v1.2.3