diff options
author | Florian Kagerer | 2009-06-01 13:37:51 +0000 |
---|---|---|
committer | Florian Kagerer | 2009-06-01 13:37:51 +0000 |
commit | 660aa716625866ae3a9db2a001ed3af6e108caaf (patch) | |
tree | a079923c21dfbd823b4e12f4e290f93360cf047c /engines/kyra/text_lol.cpp | |
parent | 18f5ef823452d4a1f4b00961504c04d41c7abe82 (diff) | |
download | scummvm-rg350-660aa716625866ae3a9db2a001ed3af6e108caaf.tar.gz scummvm-rg350-660aa716625866ae3a9db2a001ed3af6e108caaf.tar.bz2 scummvm-rg350-660aa716625866ae3a9db2a001ed3af6e108caaf.zip |
LOL: - extended text displayer and added one more opcode
svn-id: r41100
Diffstat (limited to 'engines/kyra/text_lol.cpp')
-rw-r--r-- | engines/kyra/text_lol.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/engines/kyra/text_lol.cpp b/engines/kyra/text_lol.cpp index 3ddcfdaebc..7ce12f47c7 100644 --- a/engines/kyra/text_lol.cpp +++ b/engines/kyra/text_lol.cpp @@ -354,6 +354,8 @@ void TextDisplayer_LoL::displayText(char *str, ...) { const ScreenDim *sd = _screen->_curDim; int sdx = _screen->curDimIndex(); + uint16 charsPerLine = (sd->w << 3) / (_screen->getFontWidth() + _screen->_charWidth); + while (c) { char a = tolower(_ctrl[1]); @@ -372,6 +374,8 @@ void TextDisplayer_LoL::displayText(char *str, ...) { c = parseCommand(); } + uint16 dv = _textDimData[sdx].column / (_screen->getFontWidth() + _screen->_charWidth); + switch (c - 1) { case 0: printLine(_currentLine); @@ -390,7 +394,12 @@ void TextDisplayer_LoL::displayText(char *str, ...) { break; case 8: - //TODO + printLine(_currentLine); + dv = _textDimData[sdx].column / (_screen->getFontWidth() + _screen->_charWidth); + dv = ((dv + 8) & 0xfff8) - 1; + if (dv >= charsPerLine) + dv = 0; + _textDimData[sdx].column = (_screen->getFontWidth() + _screen->_charWidth) * dv; break; case 11: |