diff options
author | Travis Howell | 2003-08-26 15:56:37 +0000 |
---|---|---|
committer | Travis Howell | 2003-08-26 15:56:37 +0000 |
commit | 63e89e58829c100ee766b35c07f87be7ae0b059d (patch) | |
tree | 593707002a93510760d7170d768f173e9e24d12e | |
parent | fda7df57fa2df58818562127aa4c5eb150f55927 (diff) | |
download | scummvm-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.cpp | 7 | ||||
-rw-r--r-- | scumm/script_v2.cpp | 10 |
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; } } |