diff options
-rw-r--r-- | scumm/script_v6.cpp | 5 | ||||
-rw-r--r-- | scumm/string.cpp | 13 |
2 files changed, 7 insertions, 11 deletions
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp index 8fcf3bc078..4632ac2604 100644 --- a/scumm/script_v6.cpp +++ b/scumm/script_v6.cpp @@ -2452,11 +2452,6 @@ void Scumm_v6::o6_kernelSetFunctions() { _string[0].color = (byte)args[2]; _string[0].xpos = args[3]; _string[0].ypos = args[4]; - _charset->setCurID(_string[0].charset); - _string[0].xpos -= _charset->getStringWidth(0, buf_output) >> 1; - if (_string[0].xpos < 0) { - _string[0].xpos = 0; - } drawDescString(buf_output); } else { setStringVars(0); diff --git a/scumm/string.cpp b/scumm/string.cpp index 201b3a63c9..a5bc387f3d 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -359,9 +359,10 @@ void Scumm::drawDescString(byte *msg) { _charset->_nextTop = _string[0].ypos; // Center text - _charset->_nextLeft -= _charset->getStringWidth(0, buffer) >> 1; - if (_charset->_nextLeft < 0) - _charset->_nextLeft = 0; + _string[0].xpos -= _charset->getStringWidth(0, buffer) >> 1; + if (_string[0].xpos < 0) { + _string[0].xpos = 0; + } _talkDelay = 1; @@ -383,12 +384,12 @@ void Scumm::drawDescString(byte *msg) { } while (c); _haveMsg = 1; - // hack: more 8 pixels at width redraw before and after text + // hack: more 8 pixels at width and height while redraw // for proper description redraw while scrolling room gdi._mask_left = _charset->_strLeft - 8; gdi._mask_right = _charset->_strRight + 8; - gdi._mask_top = _charset->_strTop; - gdi._mask_bottom = _charset->_strBottom; + gdi._mask_top = _charset->_strTop - 8; + gdi._mask_bottom = _charset->_strBottom + 8; } void Scumm::drawString(int a) { |