aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2003-08-26 15:56:37 +0000
committerTravis Howell2003-08-26 15:56:37 +0000
commit63e89e58829c100ee766b35c07f87be7ae0b059d (patch)
tree593707002a93510760d7170d768f173e9e24d12e
parentfda7df57fa2df58818562127aa4c5eb150f55927 (diff)
downloadscummvm-rg350-63e89e58829c100ee766b35c07f87be7ae0b059d.tar.gz
scummvm-rg350-63e89e58829c100ee766b35c07f87be7ae0b059d.tar.bz2
scummvm-rg350-63e89e58829c100ee766b35c07f87be7ae0b059d.zip
Fix room colors in v1 zak
svn-id: r9869
-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;
}
}