[Scummvm-cvs-logs] SF.net SVN: scummvm:[44777] scummvm/trunk/engines/sci/gui/gui_gfx.cpp
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Thu Oct 8 11:29:14 CEST 2009
Revision: 44777
http://scummvm.svn.sourceforge.net/scummvm/?rev=44777&view=rev
Author: m_kiewitz
Date: 2009-10-08 09:29:14 +0000 (Thu, 08 Oct 2009)
Log Message:
-----------
SCI/newgui: kAnimate - resolved previously unknown code functionality
Modified Paths:
--------------
scummvm/trunk/engines/sci/gui/gui_gfx.cpp
Modified: scummvm/trunk/engines/sci/gui/gui_gfx.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_gfx.cpp 2009-10-08 08:52:20 UTC (rev 44776)
+++ scummvm/trunk/engines/sci/gui/gui_gfx.cpp 2009-10-08 09:29:14 UTC (rev 44777)
@@ -1067,21 +1067,25 @@
//_lastCast->DeleteList();
}
+enum {
+ SCI_ANIMATE_SIGNAL_FROZEN = 0x0100
+};
+
void SciGuiGfx::AnimateInvoke(List *list, int argc, reg_t *argv) {
+ SegManager *segMan = _s->_segMan;
reg_t curAddress = list->first;
Node *curNode = _s->_segMan->lookupNode(curAddress);
reg_t curObject;
- //uint16 mask;
+ uint16 signal;
while (curNode) {
curObject = curNode->value;
-// FIXME: check what this code does and remove it or fix it, gregs engine had this check included
-// mask = cobj[_objOfs[2]];
-// if ((mask & 0x100) == 0) {
+ signal = GET_SEL32V(curObject, signal);
+ if (!(signal & SCI_ANIMATE_SIGNAL_FROZEN)) {
invoke_selector(_s, curObject, _s->_kernel->_selectorCache.doit, kContinueOnInvalidSelector, argv, argc, __FILE__, __LINE__, 0);
// Lookup node again, since the nodetable it was in may have been reallocated
curNode = _s->_segMan->lookupNode(curAddress);
-// }
+ }
curAddress = curNode->succ;
curNode = _s->_segMan->lookupNode(curAddress);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list