[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