diff options
-rw-r--r-- | engines/sci/gui/gui.cpp | 3 | ||||
-rw-r--r-- | engines/sci/gui/gui_transitions.cpp | 8 |
2 files changed, 8 insertions, 3 deletions
diff --git a/engines/sci/gui/gui.cpp b/engines/sci/gui/gui.cpp index 62dfbd0d89..5027c0df2c 100644 --- a/engines/sci/gui/gui.cpp +++ b/engines/sci/gui/gui.cpp @@ -300,7 +300,8 @@ void SciGui::drawStatus(const char *text, int16 colorPen, int16 colorBack) { _gfx->PenColor(colorPen); _gfx->MoveTo(0, 1); _text->Draw_String(text); - _gfx->BitsShow(_gfx->_menuRect); + if (_screen->_picNotValid == 0) + _gfx->BitsShow(_gfx->_menuRect); _gfx->SetPort(oldPort); } diff --git a/engines/sci/gui/gui_transitions.cpp b/engines/sci/gui/gui_transitions.cpp index 298b29849f..f4c6853bbe 100644 --- a/engines/sci/gui/gui_transitions.cpp +++ b/engines/sci/gui/gui_transitions.cpp @@ -309,7 +309,9 @@ void SciGuiTransitions::pixelation (bool blackoutFlag) { continue; pixelRect.left = mask % 320; pixelRect.right = pixelRect.left + 1; pixelRect.top = mask / 320; pixelRect.bottom = pixelRect.top + 1; - copyRectToScreen(pixelRect, blackoutFlag); + pixelRect.clip(_picRect); + if (!pixelRect.isEmpty()) + copyRectToScreen(pixelRect, blackoutFlag); if ((stepNr & 0x3FF) == 0) { updateScreenAndWait(5); } @@ -329,7 +331,9 @@ void SciGuiTransitions::blocks(bool blackoutFlag) { continue; blockRect.left = (mask % 40) << 3; blockRect.right = blockRect.left + 8; blockRect.top = (mask / 40) << 3; blockRect.bottom = blockRect.top + 8; - copyRectToScreen(blockRect, blackoutFlag); + blockRect.clip(_picRect); + if (!blockRect.isEmpty()) + copyRectToScreen(blockRect, blackoutFlag); if ((stepNr & 7) == 0) { updateScreenAndWait(4); } |