aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormd52011-03-02 10:48:44 +0200
committermd52011-03-02 10:48:44 +0200
commit74e99328ec0fa43074c52b69d21922407153a1aa (patch)
tree381bbeba001368387eab6a507ed47ed6fe0b20d1
parent5972a6bbe9723b9672d90a815c8d5078e8d9988f (diff)
downloadscummvm-rg350-74e99328ec0fa43074c52b69d21922407153a1aa.tar.gz
scummvm-rg350-74e99328ec0fa43074c52b69d21922407153a1aa.tar.bz2
scummvm-rg350-74e99328ec0fa43074c52b69d21922407153a1aa.zip
SCI: Fixed bug #3039775 - "KQ4: Graphics glitch in the mansion tower"
-rw-r--r--engines/sci/graphics/paint16.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/engines/sci/graphics/paint16.cpp b/engines/sci/graphics/paint16.cpp
index 53c43d94c3..20900c8f8d 100644
--- a/engines/sci/graphics/paint16.cpp
+++ b/engines/sci/graphics/paint16.cpp
@@ -378,14 +378,14 @@ void GfxPaint16::kernelDrawPicture(GuiResourceId pictureId, int16 animationNr, b
drawPicture(pictureId, animationNr, mirroredFlag, addToFlag, EGApaletteNo);
_transitions->setup(animationNr, animationBlackoutFlag);
} else {
- // We need to set it for SCI1EARLY+ (sierra sci also did so), otherwise we get at least the following issues:
- // LSL5 (english) - last wakeup (taj mahal flute dream)
- // SQ5 (english v1.03) - during the scene following the scrubbing
- // in both situations a window is shown when kDrawPic is called, which would result otherwise in
- // no showpic getting called from kAnimate and we would get graphic corruption
- // XMAS1990 EGA did not set it in this case, VGA did
- if (getSciVersion() >= SCI_VERSION_1_EARLY)
- _screen->_picNotValid = 1;
+ // The picture window is not in the front, which means that there is a
+ // textbox shown above it. We need to invalidate the old picture
+ // otherwise it will never be shown by kAnimate. Here are some
+ // examples where this occurs:
+ // - LSL5 (english) - last wakeup (taj mahal flute dream)
+ // - SQ5 (english v1.03) - during the scene following the scrubbing
+ // - KQ4 (all versions) - falling off the staircase (bug #3039775)
+ _screen->_picNotValid = 1;
_ports->beginUpdate(_ports->_picWind);
drawPicture(pictureId, animationNr, mirroredFlag, addToFlag, EGApaletteNo);
_ports->endUpdate(_ports->_picWind);