diff options
author | Martin Kiewitz | 2010-07-24 15:25:29 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-07-24 15:25:29 +0000 |
commit | d643928d0d443b2ad27b2a974f6e34f1da0e80b5 (patch) | |
tree | 4d80916334c65993cab0c361c0beb7cf4e6a9f4d /engines/sci | |
parent | 2047e75d2b3ac553acd54e31fd9725d6821668ae (diff) | |
download | scummvm-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.cpp | 9 |
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; |