aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2003-08-18 02:16:48 +0000
committerTravis Howell2003-08-18 02:16:48 +0000
commit4c6bd7167d3a7df2c0d1a99962dc27d7d274fffc (patch)
treef97b2fbe1dde2fb9fde176b381561debcd34f4b6
parent99c677f2a3297b16046bfeeb639a3420a046a1dc (diff)
downloadscummvm-rg350-4c6bd7167d3a7df2c0d1a99962dc27d7d274fffc.tar.gz
scummvm-rg350-4c6bd7167d3a7df2c0d1a99962dc27d7d274fffc.tar.bz2
scummvm-rg350-4c6bd7167d3a7df2c0d1a99962dc27d7d274fffc.zip
Fix v1 zak costume colors
svn-id: r9748
-rw-r--r--scumm/costume.cpp20
-rw-r--r--scumm/script_v2.cpp6
2 files changed, 15 insertions, 11 deletions
diff --git a/scumm/costume.cpp b/scumm/costume.cpp
index ffb7941b0a..bf787b2195 100644
--- a/scumm/costume.cpp
+++ b/scumm/costume.cpp
@@ -321,8 +321,8 @@ void CostumeRenderer::c64_ignorePakCols(int num) {
}
}
-int v1_actor_palatte_1 [] = { 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0 };
-int v1_actor_palatte_2 [] = { 0, 7, 2, 6, 9, 1, 3, 7, 7, 1, 1, 9, 1, 4, 5, 5, 4, 1, 0, 5, 4, 2, 2, 7, 7, 0 };
+int v1_mm_actor_palatte_1 [] = { 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0 };
+int v1_mm_actor_palatte_2 [] = { 0, 7, 2, 6, 9, 1, 3, 7, 7, 1, 1, 9, 1, 4, 5, 5, 4, 1, 0, 5, 4, 2, 2, 7, 7, 0 };
void CostumeRenderer::procC64(int actor) {
const byte *src;
@@ -342,12 +342,14 @@ void CostumeRenderer::procC64(int actor) {
// TODO:
// * test masking (once we implement any masking for V1 games)
- byte palette[4];
+ byte palette[4] = { 0, 8, 0, 0 };
- palette[0] = 0;
- palette[1] = v1_actor_palatte_1[actor];
- palette[2] = v1_actor_palatte_2[actor];
- palette[3] = 0;
+ if (_vm->_gameId == GID_MANIAC) {
+ palette[1] = v1_mm_actor_palatte_1[actor];
+ palette[2] = v1_mm_actor_palatte_2[actor];
+ } else {
+ palette[2] = _palette[0];
+ }
v1.skip_width >>= 3;
@@ -725,8 +727,10 @@ void CostumeRenderer::setPalette(byte *palette) {
int i;
byte color;
- if (_loaded._format == 0x57)
+ if (_loaded._format == 0x57) {
+ _palette[0] = palette[0];
return;
+ }
if (_vm->_features & GF_OLD_BUNDLE) {
if ((_vm->VAR(_vm->VAR_CURRENT_LIGHTS) & LIGHTMODE_actor_color)) {
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index 973b7f7281..70876372c2 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -372,7 +372,7 @@ int Scumm_v2::getVar() {
return readVar(fetchScriptByte());
}
-int actor_speech_color[] = {1, 7, 2, 14, 8, 1, 3, 7, 7, 12, 1, 13, 1, 4, 5, 5, 4, 3, 1, 5, 1, 1, 1, 7, 7, 0};
+int v1_mm_actor_speech_color[] = {1, 7, 2, 14, 8, 1, 3, 7, 7, 12, 1, 13, 1, 4, 5, 5, 4, 3, 1, 5, 1, 1, 1, 7, 7, 0};
void Scumm_v2::decodeParseString() {
byte buffer[512];
@@ -417,7 +417,7 @@ void Scumm_v2::decodeParseString() {
// V1 Mansion Mansion uses static color table for subtitles
if (((_gameId == GID_MANIAC) && (_version == 1)) && _actorToPrintStrFor != 0xFF)
- _string[textSlot].color = actor_speech_color[_actorToPrintStrFor];
+ _string[textSlot].color = v1_mm_actor_speech_color[_actorToPrintStrFor];
_messagePtr = buffer;
switch (textSlot) {
@@ -710,7 +710,7 @@ void Scumm_v2::o2_actorSet() {
case 5: // Talk Color
if ((_gameId == GID_MANIAC) && (_version == 1))
- actor_speech_color[act] = arg;
+ v1_mm_actor_speech_color[act] = arg;
else
a->talkColor = arg;
break;