aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v5.cpp
diff options
context:
space:
mode:
authorMax Horn2003-04-27 18:30:35 +0000
committerMax Horn2003-04-27 18:30:35 +0000
commit732d457aac9eefcdc1adb4b3b5ee5a6a2e7ea4a1 (patch)
tree2285b94ad82839475bfa744e2b29563841031b51 /scumm/script_v5.cpp
parentdfd99bbb13c6f4859d14f26752e6a2c063603e53 (diff)
downloadscummvm-rg350-732d457aac9eefcdc1adb4b3b5ee5a6a2e7ea4a1.tar.gz
scummvm-rg350-732d457aac9eefcdc1adb4b3b5ee5a6a2e7ea4a1.tar.bz2
scummvm-rg350-732d457aac9eefcdc1adb4b3b5ee5a6a2e7ea4a1.zip
Patch #728483: EGA LOOM: More text-drawing hackery
svn-id: r7162
Diffstat (limited to 'scumm/script_v5.cpp')
-rw-r--r--scumm/script_v5.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp
index 5cec8b5bc3..67a283d33e 100644
--- a/scumm/script_v5.cpp
+++ b/scumm/script_v5.cpp
@@ -451,6 +451,8 @@ void Scumm_v5::o5_actorSet() {
break;
case 12: /* talk color */
a->talkColor = getVarOrDirectByte(0x80);
+ if (_features & GF_16COLOR)
+ a->talkColor &= 0x0f; // FIXME
break;
case 13: /* name */
loadPtrToResource(rtActorName, a->number, NULL);
@@ -2482,9 +2484,14 @@ void Scumm_v5::decodeParseString() {
// FIXME: Store positions, this is needed for Indy3 (Grail Diary)..
// I don't believe this is the correct fix, may cause other problems
// later in the game.
- if ((_gameId == GID_INDY3_256) || (_gameId == GID_INDY3)) {
+ //
+ // It's also needed for Loom, or the lines Bobbin
+ // speaks during the intro are put at position 0,0.
+ // In addition, Loom needs to remember the text colour.
+ if (_gameId == GID_INDY3_256 || _gameId == GID_INDY3 || _gameId == GID_LOOM) {
_string[textSlot].t_xpos = _string[textSlot].xpos;
_string[textSlot].t_ypos = _string[textSlot].ypos;
+ _string[textSlot].t_color = _string[textSlot].color;
}
_scriptPointer = _messagePtr;