diff options
author | Martin Kiewitz | 2009-10-10 20:30:31 +0000 |
---|---|---|
committer | Martin Kiewitz | 2009-10-10 20:30:31 +0000 |
commit | cb15cdfb0733e14e6b5d065bbefb96eeb560ffda (patch) | |
tree | 8c2cf0131313f6eb169b940b54821f0d4aea74d0 | |
parent | dbaac9de57a97f597b6f817cd7f377ba8216d1a1 (diff) | |
download | scummvm-rg350-cb15cdfb0733e14e6b5d065bbefb96eeb560ffda.tar.gz scummvm-rg350-cb15cdfb0733e14e6b5d065bbefb96eeb560ffda.tar.bz2 scummvm-rg350-cb15cdfb0733e14e6b5d065bbefb96eeb560ffda.zip |
SCI/newgui: kAnimate list - showBitsFlag implemented
svn-id: r44886
-rw-r--r-- | engines/sci/gui/gui_gfx.cpp | 11 | ||||
-rw-r--r-- | engines/sci/gui/gui_helpers.h | 1 |
2 files changed, 8 insertions, 4 deletions
diff --git a/engines/sci/gui/gui_gfx.cpp b/engines/sci/gui/gui_gfx.cpp index 561f04667e..04cc594fa1 100644 --- a/engines/sci/gui/gui_gfx.cpp +++ b/engines/sci/gui/gui_gfx.cpp @@ -897,6 +897,7 @@ void SciGuiGfx::AnimateMakeSortedList(List *list) { listEntry->priority = GET_SEL32V(curObject, priority); listEntry->signal = GET_SEL32V(curObject, signal); // listEntry->celRect is filled in AnimateFill() + listEntry->showBitsFlag = false; listEntry++; curAddress = curNode->succ; @@ -983,7 +984,7 @@ void SciGuiGfx::AnimateUpdate() { bitsHandle = GET_SEL32(curObject, underBits); if (_screen->_picNotValid != 1) { RestoreBits(bitsHandle); - //arr1[i] = 1; + listEntry->showBitsFlag = true; } else { //FreeBits(bits_gfx->UnloadBits(hBits); } @@ -1006,7 +1007,8 @@ void SciGuiGfx::AnimateUpdate() { if (signal & SCI_ANIMATE_SIGNAL_ALWAYSUPDATE) { // draw corresponding cel drawCel(listEntry->viewId, listEntry->loopNo, listEntry->celNo, listEntry->celRect.left, listEntry->celRect.top, listEntry->priority, listEntry->paletteNo); -// arr1[i] = 1; + listEntry->showBitsFlag = true; + signal &= 0xFFFF ^ (SCI_ANIMATE_SIGNAL_STOPUPDATE | SCI_ANIMATE_SIGNAL_VIEWUPDATED | SCI_ANIMATE_SIGNAL_NOUPDATE | SCI_ANIMATE_SIGNAL_FORCEUPDATE); if ((signal & SCI_ANIMATE_SIGNAL_IGNOREACTOR) == 0) { rect = listEntry->celRect; @@ -1047,7 +1049,8 @@ void SciGuiGfx::AnimateUpdate() { if (signal & SCI_ANIMATE_SIGNAL_NOUPDATE && !(signal & SCI_ANIMATE_SIGNAL_HIDDEN)) { // draw corresponding cel drawCel(listEntry->viewId, listEntry->loopNo, listEntry->celNo, listEntry->celRect.left, listEntry->celRect.top, listEntry->priority, listEntry->paletteNo); - // arr1[i] = 1; + listEntry->showBitsFlag = true; + if ((signal & SCI_ANIMATE_SIGNAL_IGNOREACTOR) == 0) { rect = listEntry->celRect; rect.top = CLIP<int16>(PriorityToCoordinate(listEntry->priority) - 1, rect.top, rect.bottom - 1); @@ -1077,8 +1080,8 @@ void SciGuiGfx::AnimateDrawCels() { // draw corresponding cel drawCel(listEntry->viewId, listEntry->loopNo, listEntry->celNo, listEntry->celRect.left, listEntry->celRect.top, listEntry->priority, listEntry->paletteNo); + listEntry->showBitsFlag = true; - // arr1[inx] = 1; if (signal & SCI_ANIMATE_SIGNAL_REMOVEVIEW) { signal &= 0xFFFF ^ SCI_ANIMATE_SIGNAL_REMOVEVIEW; } diff --git a/engines/sci/gui/gui_helpers.h b/engines/sci/gui/gui_helpers.h index cca6db9fa1..201662145d 100644 --- a/engines/sci/gui/gui_helpers.h +++ b/engines/sci/gui/gui_helpers.h @@ -80,6 +80,7 @@ struct GuiAnimateList { int16 x, y, z; uint16 priority, signal; Common::Rect celRect; + bool showBitsFlag; }; struct GuiCast { |