aboutsummaryrefslogtreecommitdiff
path: root/scumm/palette.cpp
diff options
context:
space:
mode:
authorTravis Howell2004-07-13 09:59:13 +0000
committerTravis Howell2004-07-13 09:59:13 +0000
commitd189654e55e7ed485d3a5575b72b343fb5ef5bff (patch)
tree30f4f0b9f5196337868e95e76d9a4b3b0b2a0280 /scumm/palette.cpp
parenta98f67562b659a7813916ec5a0329e1d466c813d (diff)
downloadscummvm-rg350-d189654e55e7ed485d3a5575b72b343fb5ef5bff.tar.gz
scummvm-rg350-d189654e55e7ed485d3a5575b72b343fb5ef5bff.tar.bz2
scummvm-rg350-d189654e55e7ed485d3a5575b72b343fb5ef5bff.zip
More palette changes needed for HE 7.0 games.
svn-id: r14202
Diffstat (limited to 'scumm/palette.cpp')
-rw-r--r--scumm/palette.cpp30
1 files changed, 16 insertions, 14 deletions
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;