diff options
author | Martin Kiewitz | 2010-07-25 19:56:44 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-07-25 19:56:44 +0000 |
commit | 9b1d691594e2dc36de5851d7062289665b6497e5 (patch) | |
tree | 42ea3b6425eefdf88303160f1b86ba3db0b56cb4 /engines/sci | |
parent | c721b4d612a52600f6aae539e91f1d6bd03fcb13 (diff) | |
download | scummvm-rg350-9b1d691594e2dc36de5851d7062289665b6497e5.tar.gz scummvm-rg350-9b1d691594e2dc36de5851d7062289665b6497e5.tar.bz2 scummvm-rg350-9b1d691594e2dc36de5851d7062289665b6497e5.zip |
SCI: blacking out planes that got deleted
svn-id: r51282
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/graphics/frameout.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp index 71d5b9ebb2..28f08a988f 100644 --- a/engines/sci/graphics/frameout.cpp +++ b/engines/sci/graphics/frameout.cpp @@ -104,6 +104,18 @@ void GfxFrameout::kernelDeletePlane(reg_t object) { for (PlaneList::iterator it = _planes.begin(); it != _planes.end(); it++) { if (it->object == object) { _planes.erase(it); + Common::Rect planeRect; + planeRect.top = readSelectorValue(_segMan, object, SELECTOR(top)); + planeRect.left = readSelectorValue(_segMan, object, SELECTOR(left)); + planeRect.bottom = readSelectorValue(_segMan, object, SELECTOR(bottom)) + 1; + planeRect.right = readSelectorValue(_segMan, object, SELECTOR(right)) + 1; + + planeRect.top = (planeRect.top * _screen->getHeight()) / scriptsRunningHeight; + planeRect.left = (planeRect.left * _screen->getWidth()) / scriptsRunningWidth; + planeRect.bottom = (planeRect.bottom * _screen->getHeight()) / scriptsRunningHeight; + planeRect.right = (planeRect.right * _screen->getWidth()) / scriptsRunningWidth; + // Blackout removed plane rect + _paint32->fillRect(planeRect, 0); return; } } |