aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorMax Horn2003-04-26 16:17:51 +0000
committerMax Horn2003-04-26 16:17:51 +0000
commitafaac51b65d08048d1d58b534b536260a42586aa (patch)
treeceb787a8d35245c1a0047ca39acb9b3d7b7db938 /scumm
parent9436bff3e33134a9d724226b1fa4b93cab8f20c5 (diff)
downloadscummvm-rg350-afaac51b65d08048d1d58b534b536260a42586aa.tar.gz
scummvm-rg350-afaac51b65d08048d1d58b534b536260a42586aa.tar.bz2
scummvm-rg350-afaac51b65d08048d1d58b534b536260a42586aa.zip
fixed issue in Loom (and other OLD_BUNDLE games?) in decodeParseString
svn-id: r7135
Diffstat (limited to 'scumm')
-rw-r--r--scumm/script_v5.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp
index 6fe98e5b60..5f73a32100 100644
--- a/scumm/script_v5.cpp
+++ b/scumm/script_v5.cpp
@@ -2416,16 +2416,32 @@ void Scumm_v5::decodeParseString() {
case 1: /* color */
_string[textSlot].color = getVarOrDirectByte(0x80);
break;
- case 2: /* right */
+ case 2: /* clipping */
_string[textSlot].right = getVarOrDirectWord(0x80);
break;
+ case 3: /* erase */
+ {
+ int a = getVarOrDirectWord(0x80);
+ int b = getVarOrDirectWord(0x40);
+ warning("Scumm_v5::decodeParseString: Unhandled case 3: %d, %d\n", a, b);
+ }
+ break;
case 4: /* center */
_string[textSlot].center = true;
_string[textSlot].overhead = false;
break;
case 6: /* left */
- _string[textSlot].center = false;
- _string[textSlot].overhead = false;
+ // FIXME: not sure if GF_OLD_BUNDLE is the right thing to check...
+ // but Loom needs this, for sure.
+ if (_features & GF_OLD_BUNDLE) {
+ // FIXME: this value seems to be some kind of override
+ // for text spacing?!?
+ /* int a = */ getVarOrDirectWord(0x80);
+
+ } else {
+ _string[textSlot].center = false;
+ _string[textSlot].overhead = false;
+ }
break;
case 7: /* overhead */
_string[textSlot].overhead = true;
@@ -2484,6 +2500,7 @@ void Scumm_v5::decodeParseString() {
_scriptPointer = _messagePtr;
return;
default:
+ warning("Scumm_v5::decodeParseString: Unhandled case %d", _opcode & 0xF);
return;
}
}