SCI: kDisplay difference in SCI0 (fixes colonels bequest copy protection screen)

svn-id: r46901
This commit is contained in:
Martin Kiewitz 2010-01-02 21:55:39 +00:00
parent 4640b35832
commit 2f65f8f7c6

View file

@ -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);