BGE bug #17731 fixed: No sleeping Button disables dynamics of an object if it's parented+unparented

This commit is contained in:
Benoit Bolsee 2008-12-05 23:13:23 +00:00
parent 149d231d69
commit 2746034295
2 changed files with 4 additions and 2 deletions

@ -185,7 +185,8 @@ void KX_BulletPhysicsController::SuspendDynamics(bool ghost)
m_savedMass = GetMass();
m_savedCollisionFilterGroup = handle->m_collisionFilterGroup;
m_savedCollisionFilterMask = handle->m_collisionFilterMask;
body->setActivationState(DISABLE_SIMULATION);
m_savedActivationState = body->getActivationState();
body->forceActivationState(DISABLE_SIMULATION);
GetPhysicsEnvironment()->updateCcdPhysicsController(this,
0.0,
btCollisionObject::CF_STATIC_OBJECT|((ghost)?btCollisionObject::CF_NO_CONTACT_RESPONSE:(m_savedCollisionFlags&btCollisionObject::CF_NO_CONTACT_RESPONSE)),
@ -204,7 +205,7 @@ void KX_BulletPhysicsController::RestoreDynamics()
m_savedCollisionFlags,
m_savedCollisionFilterGroup,
m_savedCollisionFilterMask);
GetRigidBody()->forceActivationState(ACTIVE_TAG);
GetRigidBody()->forceActivationState(m_savedActivationState);
}
}

@ -9,6 +9,7 @@ class KX_BulletPhysicsController : public KX_IPhysicsController ,public CcdPhysi
{
private:
int m_savedCollisionFlags;
int m_savedActivationState;
short int m_savedCollisionFilterGroup;
short int m_savedCollisionFilterMask;
MT_Scalar m_savedMass;