aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMartin Kiewitz2009-10-12 15:52:50 +0000
committerMartin Kiewitz2009-10-12 15:52:50 +0000
commit291e479daf44611be9238943ba0ee33150baaedc (patch)
treea3c5555326ac70c72031a67f59f9c40885227a42 /engines
parentcfc3af3466484dbd5cccefa1276716836d09e754 (diff)
downloadscummvm-rg350-291e479daf44611be9238943ba0ee33150baaedc.tar.gz
scummvm-rg350-291e479daf44611be9238943ba0ee33150baaedc.tar.bz2
scummvm-rg350-291e479daf44611be9238943ba0ee33150baaedc.zip
SCI/newgui: background of noupdate cels is now correctly saved (was typo) solves sticky cel problem
svn-id: r44989
Diffstat (limited to 'engines')
-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;