aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/gfx.cpp7
-rw-r--r--scumm/script_v2.cpp10
2 files changed, 14 insertions, 3 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp
index 792217975f..1faeda8cb2 100644
--- a/scumm/gfx.cpp
+++ b/scumm/gfx.cpp
@@ -1346,6 +1346,11 @@ void Gdi::drawStripC64Background(byte *dst, int stripnr, int height) {
height >>= 3;
for (int y = 0; y < height; y++) {
_C64Colors[3] = (_C64ColorMap[y + stripnr * height] & 7);
+ if (_vm->_shadowPalette[0] == 255) {
+ _vm->_shadowPalette[0] = 0;
+ _C64Colors[2] = _vm->_shadowPalette[2];
+ _C64Colors[1] = _vm->_shadowPalette[1];
+ }
charIdx = _C64PicMap[y + stripnr * height] * 8;
for (int i = 0; i < 8; i++) {
byte c = _C64CharMap[charIdx + i];
@@ -3339,7 +3344,7 @@ void Scumm::updatePalette() {
for (i = _palDirtyMin; i <= _palDirtyMax; i++) {
byte *data;
- if (_features & GF_SMALL_HEADER)
+ if (_features & GF_SMALL_HEADER && _version > 1)
data = _currentPalette + _shadowPalette[i] * 3;
else
data = _currentPalette + i * 3;
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index 7770946c44..6d99852c71 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -1333,8 +1333,14 @@ void Scumm_v2::o2_roomOps() {
VAR(VAR_CAMERA_MAX_X) = b;
break;
case 2: /* room color */
- _shadowPalette[b] = a;
- _fullRedraw = true;
+ if (_version == 1) {
+ _shadowPalette[0] = 255;
+ _shadowPalette[1] = a;
+ _shadowPalette[2] = b;
+ } else {
+ _shadowPalette[b] = a;
+ _fullRedraw = true;
+ }
break;
}
}