Fix v1 zak costume colors

svn-id: r9748
This commit is contained in:
Travis Howell 2003-08-18 02:16:48 +00:00
parent 99c677f2a3
commit 4c6bd7167d
2 changed files with 15 additions and 11 deletions

View File

@ -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)) {

View File

@ -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;