aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2003-08-16 05:45:19 +0000
committerTravis Howell2003-08-16 05:45:19 +0000
commit5a963767bffb6655371f2103e577dd5ab0237703 (patch)
tree42c5612913b67e4a8410d5fe6151609a6f53c682 /scumm
parent3b75fa8d3ce712b0c696eb586f4cd341ad1fb345 (diff)
downloadscummvm-rg350-5a963767bffb6655371f2103e577dd5ab0237703.tar.gz
scummvm-rg350-5a963767bffb6655371f2103e577dd5ab0237703.tar.bz2
scummvm-rg350-5a963767bffb6655371f2103e577dd5ab0237703.zip
Fix subtitles colors in V1 maniac
svn-id: r9713
Diffstat (limited to 'scumm')
-rw-r--r--scumm/actor.cpp3
-rw-r--r--scumm/script_v2.cpp7
2 files changed, 8 insertions, 2 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp
index 8b26f65b8d..4598c01b16 100644
--- a/scumm/actor.cpp
+++ b/scumm/actor.cpp
@@ -1157,7 +1157,8 @@ void Scumm::actorTalk() {
return;
}
- if (VAR(VAR_TALK_ACTOR) > 0x7F) {
+ //FIXME looks like V1 Maniac Mansion needs a different type of check at this point.
+ if (((_gameId == GID_MANIAC) && (_version == 1)) || VAR(VAR_TALK_ACTOR) > 0x7F) {
_charsetColor = (byte)_string[0].color;
} else {
a = derefActor(VAR(VAR_TALK_ACTOR), "actorTalk(2)");
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index bf8f570d5d..3218e4188d 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -372,6 +372,8 @@ int Scumm_v2::getVar() {
return readVar(fetchScriptByte());
}
+int static 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[256];
byte *ptr = buffer;
@@ -412,7 +414,10 @@ void Scumm_v2::decodeParseString() {
_string[textSlot].right = 320;
_string[textSlot].center = false;
_string[textSlot].overhead = false;
-// _string[textSlot].color = 9; // light blue
+
+ // V1 Mansion Mansion uses static color table for subtitles
+ if (((_gameId == GID_MANIAC) && (_version == 1)) && _actorToPrintStrFor != 0xFF)
+ _string[textSlot].color = actor_speech_color[_actorToPrintStrFor];
_messagePtr = buffer;
switch (textSlot) {