aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMartin Kiewitz2010-07-24 15:25:29 +0000
committerMartin Kiewitz2010-07-24 15:25:29 +0000
commitd643928d0d443b2ad27b2a974f6e34f1da0e80b5 (patch)
tree4d80916334c65993cab0c361c0beb7cf4e6a9f4d /engines/sci
parent2047e75d2b3ac553acd54e31fd9725d6821668ae (diff)
downloadscummvm-rg350-d643928d0d443b2ad27b2a974f6e34f1da0e80b5.tar.gz
scummvm-rg350-d643928d0d443b2ad27b2a974f6e34f1da0e80b5.tar.bz2
scummvm-rg350-d643928d0d443b2ad27b2a974f6e34f1da0e80b5.zip
SCI: delete hidden planes in kFrameout
svn-id: r51246
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/graphics/frameout.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp
index d92f6ed1be..ec3d75516b 100644
--- a/engines/sci/graphics/frameout.cpp
+++ b/engines/sci/graphics/frameout.cpp
@@ -132,9 +132,6 @@ void GfxFrameout::kernelFrameout() {
reg_t planeObject = *it;
uint16 planePriority = readSelectorValue(_segMan, planeObject, SELECTOR(priority));
- if (planePriority == 0xffff) // Plane currently not meant to be shown
- continue;
-
Common::Rect planeRect;
planeRect.top = readSelectorValue(_segMan, planeObject, SELECTOR(top));
planeRect.left = readSelectorValue(_segMan, planeObject, SELECTOR(left));
@@ -148,6 +145,12 @@ void GfxFrameout::kernelFrameout() {
planeRect.bottom = (planeRect.bottom * _screen->getHeight()) / planeResY;
planeRect.right = (planeRect.right * _screen->getWidth()) / planeResX;
+ if (planePriority == 0xffff) { // Plane currently not meant to be shown
+ // TODO: better remember previous state and only delete if it got hidden now
+ _paint32->fillRect(planeRect, 0);
+ continue;
+ }
+
Common::Rect planeClipRect(planeRect.width(), planeRect.height());
Common::Rect upscaledPlaneRect = planeRect;