aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorMax Horn2004-04-25 13:34:19 +0000
committerMax Horn2004-04-25 13:34:19 +0000
commitf9cd78cedd48371f8aa9d98cbcdeb879fe543fac (patch)
treec5c738a5550e26e7df34b87cc16c434331448576 /scumm
parente39cfbd86429f0d6ae0663b2db5c06038f6415e7 (diff)
downloadscummvm-rg350-f9cd78cedd48371f8aa9d98cbcdeb879fe543fac.tar.gz
scummvm-rg350-f9cd78cedd48371f8aa9d98cbcdeb879fe543fac.tar.bz2
scummvm-rg350-f9cd78cedd48371f8aa9d98cbcdeb879fe543fac.zip
Workaround for bug #864030 (COMI: ASCII 0xb (11) not handled)
svn-id: r13621
Diffstat (limited to 'scumm')
-rw-r--r--scumm/charset.cpp4
-rw-r--r--scumm/string.cpp8
2 files changed, 9 insertions, 3 deletions
diff --git a/scumm/charset.cpp b/scumm/charset.cpp
index 2c0ba2ea56..dec2790b72 100644
--- a/scumm/charset.cpp
+++ b/scumm/charset.cpp
@@ -146,9 +146,7 @@ void CharsetRenderer::addLinebreaks(int a, byte *str, int pos, int maxwidth) {
while ((chr = str[pos++]) != 0) {
if (chr == '@')
continue;
- if (chr == 254)
- chr = 255;
- if (chr == 255) {
+ if (chr == 254 || chr == 255) {
chr = str[pos++];
if (chr == 3) // 'Wait'
break;
diff --git a/scumm/string.cpp b/scumm/string.cpp
index ca4a4505f6..359ce08ea4 100644
--- a/scumm/string.cpp
+++ b/scumm/string.cpp
@@ -191,6 +191,14 @@ void ScummEngine::CHARSET_1() {
_keepText = false;
break;
}
+
+ // FIXME: This is a workaround for bug #864030: In COMI, some text
+ // contains ASCII character 11 = 0xB. It's not quite clear what it is
+ // good for; so for now we just ignore it, which seems to match the
+ // original engine (BTW, traditionally, this is a 'vertical tab').
+ if (c == 0x0B)
+ continue;
+
if (c == 13) {
newLine:;
_charset->_nextLeft = _string[0].xpos;