diff options
Diffstat (limited to 'engines/kyra/text_rpg.cpp')
-rw-r--r-- | engines/kyra/text_rpg.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/engines/kyra/text_rpg.cpp b/engines/kyra/text_rpg.cpp index a78adb93d9..d0f7b5e532 100644 --- a/engines/kyra/text_rpg.cpp +++ b/engines/kyra/text_rpg.cpp @@ -229,7 +229,7 @@ void TextDisplayer_rpg::displayText(char *str, ...) { break; default: - if (_vm->game() == GI_LOL || c > 30) { + if (_vm->game() == GI_LOL || (unsigned char)c > 30) { _lineWidth += (pc98PrintFlag ? 4 : _screen->getCharWidth((uint8)c)); _currentLine[_numCharsLeft++] = c; _currentLine[_numCharsLeft] = 0; @@ -282,14 +282,18 @@ void TextDisplayer_rpg::readNextPara() { _tempString1 = 0; } - if ((_vm->game() != GI_LOL) && (d & 0x80)) { + // This seems to be some sort of character conversion mechanism. The original doesn't make any use of it, however. + // All necessary conversions take place somewhere else. This code actually causes issues if the character conversions + // don't take place before calling displayText(). So we disable it for now. If some (not yet supported) localized + // versions depend on this code we'll have to look at this again. + /* if ((_vm->game() != GI_LOL) && (d & 0x80)) { d &= 0x7f; c = d & 7; d = (d & 0x78) >> 3; uint8 l = d; c = _table1[(l << 3) + c]; d = _table2[l]; - } + }*/ _ctrl[1] = d; _ctrl[2] = c; |