[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15555] branches/blender-2.47/source/ gameengine/Ketsji: branches/blender-2.47

Diego Borghetti bdiego at gmail.com
Sun Jul 13 19:17:57 CEST 2008


Revision: 15555
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15555
Author:   bdiego
Date:     2008-07-13 19:17:57 +0200 (Sun, 13 Jul 2008)

Log Message:
-----------
branches/blender-2.47

Bugfix from trunk (patch send by Benoit Bolsee to the ML):

Truncated loop n Ipo Actuator when start frame is not 1.
Parent Actuator did not check if activation was due to positive or
negative event

Modified Paths:
--------------
    branches/blender-2.47/source/gameengine/Ketsji/KX_IpoActuator.cpp
    branches/blender-2.47/source/gameengine/Ketsji/KX_ParentActuator.cpp

Modified: branches/blender-2.47/source/gameengine/Ketsji/KX_IpoActuator.cpp
===================================================================
--- branches/blender-2.47/source/gameengine/Ketsji/KX_IpoActuator.cpp	2008-07-13 16:57:24 UTC (rev 15554)
+++ branches/blender-2.47/source/gameengine/Ketsji/KX_IpoActuator.cpp	2008-07-13 17:17:57 UTC (rev 15555)
@@ -352,7 +352,10 @@
 				if (!m_bNegativeEvent){
 					/* Perform wraparound */
 					SetLocalTime(curtime);
-					m_localtime = m_startframe + fmod(m_localtime, m_startframe - m_endframe);
+					if (start_smaller_then_end > 0.f)
+						m_localtime = m_startframe + fmod(m_localtime - m_startframe, m_endframe - m_startframe);
+					else
+						m_localtime = m_startframe - fmod(m_startframe - m_localtime, m_startframe - m_endframe);
 					SetStartTime(curtime);
 				}
 				else

Modified: branches/blender-2.47/source/gameengine/Ketsji/KX_ParentActuator.cpp
===================================================================
--- branches/blender-2.47/source/gameengine/Ketsji/KX_ParentActuator.cpp	2008-07-13 16:57:24 UTC (rev 15554)
+++ branches/blender-2.47/source/gameengine/Ketsji/KX_ParentActuator.cpp	2008-07-13 17:17:57 UTC (rev 15555)
@@ -77,6 +77,12 @@
 
 bool KX_ParentActuator::Update()
 {
+	bool bNegativeEvent = IsNegativeEvent();
+	RemoveAllEvents();
+
+	if (bNegativeEvent)
+		return false; // do nothing on negative events
+
 	KX_GameObject *obj = (KX_GameObject*) GetParent();
 	KX_Scene *scene = PHY_GetActiveScene();
 	switch (m_mode) {





More information about the Bf-blender-cvs mailing list