aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/gui/gui.cpp3
-rw-r--r--engines/sci/gui/gui_transitions.cpp8
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);
}