[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37768] branches/soc-2011-pepper/source/ gameengine/Converter/BL_ActionActuator.cpp: BGE Animations: Making the play modes for the Acton Actuator behave more like they have in the past .
Mitchell Stokes
mogurijin at gmail.com
Fri Jun 24 00:00:55 CEST 2011
Revision: 37768
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37768
Author: moguri
Date: 2011-06-23 22:00:54 +0000 (Thu, 23 Jun 2011)
Log Message:
-----------
BGE Animations: Making the play modes for the Acton Actuator behave more like they have in the past. The only one that still needs work now is Flipper. Property, Loop End, Loop Stop, Play, and Ping Pong should all now be behaving as they used to.
Modified Paths:
--------------
branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionActuator.cpp
Modified: branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionActuator.cpp
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionActuator.cpp 2011-06-23 21:11:17 UTC (rev 37767)
+++ branches/soc-2011-pepper/source/gameengine/Converter/BL_ActionActuator.cpp 2011-06-23 22:00:54 UTC (rev 37768)
@@ -189,17 +189,28 @@
obj->SetActionFrame(m_layer, m_localtime);
}
else if (m_is_going && bNegativeEvent)
- {
- m_is_going = false;
-
- if (!m_end_reset)
+ {
+ if (m_playtype == ACT_ACTION_LOOP_STOP)
{
- obj->StopAction(m_layer);
- return false;
+ if (!m_end_reset)
+ {
+ obj->StopAction(m_layer);
+ return false;
+ }
+
+ m_localtime = obj->GetActionFrame(m_layer);
+ obj->StopAction(m_layer); // Stop the action after getting the frame
}
+ else if (m_playtype == ACT_ACTION_LOOP_END)
+ {
+ // Convert into a play and let it finish
+ obj->PlayAction(m_action->id.name+2, start, end, m_layer, 0, BL_Action::ACT_MODE_PLAY, 0, m_ipo_flags);
+ obj->SetActionFrame(m_layer, m_localtime);
- m_localtime = obj->GetActionFrame(m_layer);
- obj->StopAction(m_layer); // Stop the action after getting the frame
+ return true;
+ }
+
+ m_is_going = false;
}
// Handle a frame property if it's defined
@@ -214,13 +225,11 @@
newval->Release();
}
- if (m_playtype == ACT_ACTION_FROM_PROP)
- {
- return true;
- }
// Handle a finished animation
- else if (m_is_going && obj->IsActionDone(m_layer))
+ if (m_is_going && obj->IsActionDone(m_layer))
{
+ m_is_going = false;
+ obj->StopAction(m_layer);
return false;
}
More information about the Bf-blender-cvs
mailing list