diff options
author | Paweł Kołodziejski | 2003-04-22 19:59:30 +0000 |
---|---|---|
committer | Paweł Kołodziejski | 2003-04-22 19:59:30 +0000 |
commit | 80951af4f2d1aebc44a22d707e04a509686723aa (patch) | |
tree | 9e83fa99c2574576672961b54cd97545063754ce /scumm/costume.cpp | |
parent | 0b7c86ff13fd6d213cb1b989c587fbf00672ca47 (diff) | |
download | scummvm-rg350-80951af4f2d1aebc44a22d707e04a509686723aa.tar.gz scummvm-rg350-80951af4f2d1aebc44a22d707e04a509686723aa.tar.bz2 scummvm-rg350-80951af4f2d1aebc44a22d707e04a509686723aa.zip |
corrections for setting actor palette
svn-id: r7076
Diffstat (limited to 'scumm/costume.cpp')
-rw-r--r-- | scumm/costume.cpp | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/scumm/costume.cpp b/scumm/costume.cpp index 03accd2072..fc38fb7554 100644 --- a/scumm/costume.cpp +++ b/scumm/costume.cpp @@ -1317,23 +1317,28 @@ void CostumeRenderer::setPalette(byte *palette) { byte color; if (_vm->_features & GF_OLD_BUNDLE) { - for (i = 0; i < _loaded._numColors; i++) { - _palette[i] = i; - } - _palette[_loaded._ptr[8]] = palette[0]; - // TODO / FIXME - return; - } - - for (i = 0; i < _loaded._numColors; i++) { - if ((_vm->_vars[_vm->VAR_CURRENT_LIGHTS] & LIGHTMODE_actor_color) || (_vm->_features & GF_AFTER_V6)) { - color = palette[i]; - if (color == 255) - color = _loaded._ptr[8 + i]; + palette[_loaded._ptr[8]] = palette[0]; + if ((_vm->_vars[_vm->VAR_CURRENT_LIGHTS] & LIGHTMODE_actor_color)) { + for (i = 0; i < 16; i++) { + _palette[i] = palette[i]; + } } else { - color = (i == 12) ? 0 : 8; + for (i = 0; i < 16; i++) { + _palette[i] = 8; + } + _palette[12] = 0; + } + } else { + for (i = 0; i < _loaded._numColors; i++) { + if ((_vm->_vars[_vm->VAR_CURRENT_LIGHTS] & LIGHTMODE_actor_color) || (_vm->_features & GF_AFTER_V6)) { + color = palette[i]; + if (color == 255) + color = _loaded._ptr[8 + i]; + } else { + color = (i == 12) ? 0 : 8; + } + _palette[i] = color; } - _palette[i] = color; } } |