From d189654e55e7ed485d3a5575b72b343fb5ef5bff Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Tue, 13 Jul 2004 09:59:13 +0000 Subject: More palette changes needed for HE 7.0 games. svn-id: r14202 --- scumm/palette.cpp | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'scumm/palette.cpp') diff --git a/scumm/palette.cpp b/scumm/palette.cpp index 20f131b482..6658acd97c 100644 --- a/scumm/palette.cpp +++ b/scumm/palette.cpp @@ -588,40 +588,39 @@ void ScummEngine::darkenPalette(int redScale, int greenScale, int blueScale, int if (startColor <= endColor) { const byte *cptr; - byte *cur; - int j; - int color; - - cptr = getPalettePtr(_curPalIndex) + startColor * 3; - cur = _currentPalette + startColor * 3; + int color, idx, j; for (j = startColor; j <= endColor; j++) { // FIXME: Hack to fix Amiga palette adjustments - if ((_features & GF_AMIGA && _version == 5) && (j >= 16 && j < 81)) { - cptr += 3; - cur += 3; + if ((_features & GF_AMIGA && _version == 5) && (j >= 16 && j < 81)) continue; - } + + idx = (_heversion == 70) ? _HEV7ActorPalette[j] : j; + cptr = getPalettePtr(_curPalIndex) + idx * 3; + + if (_heversion == 70) + setDirtyColors(idx, idx); color = *cptr++; color = color * redScale / 0xFF; if (color > 255) color = 255; - *cur++ = color; + _currentPalette[idx * 3 + 0] = color; color = *cptr++; color = color * greenScale / 0xFF; if (color > 255) color = 255; - *cur++ = color; + _currentPalette[idx * 3 + 1] = color; color = *cptr++; color = color * blueScale / 0xFF; if (color > 255) color = 255; - *cur++ = color; + _currentPalette[idx * 3 + 2] = color; } - setDirtyColors(startColor, endColor); + if (_heversion != 70) + setDirtyColors(startColor, endColor); } } @@ -809,6 +808,9 @@ void ScummEngine::copyPalColor(int dst, int src) { } void ScummEngine::setPalColor(int idx, int r, int g, int b) { + if (_heversion == 70) + idx = _HEV7ActorPalette[idx]; + _currentPalette[idx * 3 + 0] = r; _currentPalette[idx * 3 + 1] = g; _currentPalette[idx * 3 + 2] = b; -- cgit v1.2.3