aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/scumm/gfx.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index 18cba0ab4a..be36069dd7 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -671,6 +671,16 @@ void ScummEngine::drawStripToScreen(VirtScreen *vs, int x, int width, int top, i
width -= 16;
if (width <= 0)
return;
+
+ // HACK: In this way we won't get a screen with dirty side strips when
+ // loading a narrow room in a full screen room.
+ if(width == 224 && height == 240 && x == 16) {
+ char blackbuf[16 * 240];
+ memset(blackbuf, 0, 16*240); // Prepare a buffer 16px wide and 240px high, to fit on a lateral strip
+
+ width = 240; // Fix right strip
+ _system->copyRectToScreen((const byte *)blackbuf, 16, 0, 0, 16, 240); // Fix left strip
+ }
}
}