aboutsummaryrefslogtreecommitdiff
path: root/scumm/costume.cpp
diff options
context:
space:
mode:
authorPaweł Kołodziejski2003-04-22 19:59:30 +0000
committerPaweł Kołodziejski2003-04-22 19:59:30 +0000
commit80951af4f2d1aebc44a22d707e04a509686723aa (patch)
tree9e83fa99c2574576672961b54cd97545063754ce /scumm/costume.cpp
parent0b7c86ff13fd6d213cb1b989c587fbf00672ca47 (diff)
downloadscummvm-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.cpp35
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;
}
}