aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/gui/gui_gfx.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/engines/sci/gui/gui_gfx.cpp b/engines/sci/gui/gui_gfx.cpp
index 703b730e5b..4143d1c720 100644
--- a/engines/sci/gui/gui_gfx.cpp
+++ b/engines/sci/gui/gui_gfx.cpp
@@ -1147,7 +1147,7 @@ void SciGuiGfx::AnimateUpdate() {
GuiAnimateList::iterator listBegin = _animateList.begin();
GuiAnimateList::iterator listEnd = _animateList.end();
- // Remove all previous cels from screen
+ // Remove all no-update cels, if requested
listIterator = _animateList.reverse_begin();
while (listIterator != listEnd) {
listEntry = *listIterator;
@@ -1174,6 +1174,7 @@ void SciGuiGfx::AnimateUpdate() {
listIterator--;
}
+ // Draw always-update cels
listIterator = listBegin;
while (listIterator != listEnd) {
listEntry = *listIterator;
@@ -1196,6 +1197,7 @@ void SciGuiGfx::AnimateUpdate() {
listIterator++;
}
+ // Saving background for all NoUpdate-cels
listIterator = listBegin;
while (listIterator != listEnd) {
listEntry = *listIterator;
@@ -1208,7 +1210,7 @@ void SciGuiGfx::AnimateUpdate() {
} else {
signal &= 0xFFFF ^ SCI_ANIMATE_SIGNAL_REMOVEVIEW;
if (signal & SCI_ANIMATE_SIGNAL_IGNOREACTOR)
- bitsHandle = BitsSave(listEntry->celRect, SCI_SCREEN_MASK_PRIORITY|SCI_SCREEN_MASK_PRIORITY);
+ bitsHandle = BitsSave(listEntry->celRect, SCI_SCREEN_MASK_VISUAL|SCI_SCREEN_MASK_PRIORITY);
else
bitsHandle = BitsSave(listEntry->celRect, SCI_SCREEN_MASK_ALL);
PUT_SEL32(curObject, underBits, bitsHandle);
@@ -1218,6 +1220,7 @@ void SciGuiGfx::AnimateUpdate() {
listIterator++;
}
+ // Draw NoUpdate cels
listIterator = listBegin;
while (listIterator != listEnd) {
listEntry = *listIterator;