aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/text_lol.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2009-06-01 13:37:51 +0000
committerFlorian Kagerer2009-06-01 13:37:51 +0000
commit660aa716625866ae3a9db2a001ed3af6e108caaf (patch)
treea079923c21dfbd823b4e12f4e290f93360cf047c /engines/kyra/text_lol.cpp
parent18f5ef823452d4a1f4b00961504c04d41c7abe82 (diff)
downloadscummvm-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.cpp11
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: