diff options
-rw-r--r-- | engines/sci/gui/gui.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/sci/gui/gui.cpp b/engines/sci/gui/gui.cpp index fcbe4f9a05..562d5d95d1 100644 --- a/engines/sci/gui/gui.cpp +++ b/engines/sci/gui/gui.cpp @@ -264,8 +264,13 @@ void SciGui::display(const char *text, int argc, reg_t *argv) { // now drawing the text _text->Size(rect, text, -1, width); rect.moveTo(_gfx->GetPort()->curLeft, _gfx->GetPort()->curTop); - _gfx->Move(rect.right <= _screen->_width ? 0 : _screen->_width - rect.right, rect.bottom <= _screen->_height ? 0 : _screen->_width - rect.bottom); - rect.moveTo(_gfx->GetPort()->curLeft, _gfx->GetPort()->curTop); + if (getSciVersion() >= SCI_VERSION_1_EGA) { + // TODO: Not absolutely sure when this changed happened + // Clipping is definitely not done in qfg1, but are done in kq5cd + // This fixes colonels bequest + _gfx->Move(rect.right <= _screen->_width ? 0 : _screen->_width - rect.right, rect.bottom <= _screen->_height ? 0 : _screen->_width - rect.bottom); + rect.moveTo(_gfx->GetPort()->curLeft, _gfx->GetPort()->curTop); + } if (doSaveUnder) _s->r_acc = _gfx->BitsSave(rect, SCI_SCREEN_MASK_VISUAL); |