BGE Animations: Removing some redundant pose copies from BL_Action.

This commit is contained in:
Mitchell Stokes 2011-06-06 23:35:24 +00:00
parent e18bea1cfc
commit b9abe6211f

@ -187,14 +187,9 @@ void BL_Action::Update(float curtime)
if (m_obj->GetGameObjectType() == SCA_IObject::OBJ_ARMATURE)
{
bPose* prev_pose = NULL;
BL_ArmatureObject *obj = (BL_ArmatureObject*)m_obj;
obj->GetPose(&m_pose);
// Save the old pose if we need to do some layer blending
if (m_blendmode != ACT_BLEND_NONE)
obj->GetMRDPose(&prev_pose);
// Extract the pose from the action
{
struct PointerRNA id_ptr;
@ -208,17 +203,6 @@ void BL_Action::Update(float curtime)
arm->pose = temp;
}
// Handle blending between layers
switch(m_blendmode)
{
case ACT_BLEND_MIX:
game_blend_poses(m_pose, prev_pose, 0.5f);
break;
case ACT_BLEND_NONE:
default:
break;
}
// Handle blending between actions
if (m_blendin && m_blendframe<m_blendin)
{
@ -239,21 +223,10 @@ void BL_Action::Update(float curtime)
if (m_blendframe>m_blendin)
m_blendframe = m_blendin;
}
else
{
if (m_blendpose)
{
game_free_pose(m_blendpose);
m_blendpose = NULL;
}
}
obj->SetPose(m_pose);
obj->SetActiveAction(NULL, 0, curtime);
if (prev_pose)
game_free_pose(prev_pose);
}
else
{