diff options
author | Max Horn | 2003-04-26 16:17:51 +0000 |
---|---|---|
committer | Max Horn | 2003-04-26 16:17:51 +0000 |
commit | afaac51b65d08048d1d58b534b536260a42586aa (patch) | |
tree | ceb787a8d35245c1a0047ca39acb9b3d7b7db938 /scumm | |
parent | 9436bff3e33134a9d724226b1fa4b93cab8f20c5 (diff) | |
download | scummvm-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.cpp | 23 |
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; } } |