aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/scumm/palette.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/scumm/palette.cpp b/engines/scumm/palette.cpp
index 75db90842d..4d53b2ec74 100644
--- a/engines/scumm/palette.cpp
+++ b/engines/scumm/palette.cpp
@@ -400,6 +400,10 @@ void ScummEngine::setAmigaPaletteFromPtr(const byte *ptr) {
mapVerbPalette(i);
} else {
int idx = (i - 16) & 31;
+ // We adjust our verb palette map from [0, 31] to [32, 63], since unlike
+ // the original we set up the verb palette at colors [32, 63].
+ // The original instead used two different palettes for the verb virtual
+ // screen and all the rest.
if (idx != 17) {
_roomPalette[i] = idx;
_verbPalette[i] = idx + 32;
@@ -454,6 +458,10 @@ int ScummEngine::remapRoomPaletteColor(int r, int g, int b) {
}
void ScummEngine::mapVerbPalette(int idx) {
+ // We adjust our verb palette map from [0, 31] to [32, 63], since unlike
+ // the original we set up the verb palette at colors [32, 63].
+ // The original instead used two different palettes for the verb virtual
+ // screen and all the rest.
if (idx >= 48 && idx < 80 && idx != 65)
_verbPalette[idx] = idx - 16;
else
@@ -1220,6 +1228,8 @@ void ScummEngine::setPalColor(int idx, int r, int g, int b) {
if (i >= 16 && i < _amigaFirstUsedColor)
continue;
+ // We do - 16 instead of - 48 like the original, since our
+ // verb palette map is using [32, 63] instead of [0, 31].
if (idx - 16 == _verbPalette[i])
mapVerbPalette(i);
}