Bläddra i källkod

Revert "world: fix setting static actors as kinematic"

This reverts commit 2bb14a5441de902283eae87927bb71fed8a86477.
Daniele Bartolini 9 månader sedan
förälder
incheckning
88ea900185
1 ändrade filer med 6 tillägg och 14 borttagningar
  1. 6 14
      src/world/physics_world_bullet.cpp

+ 6 - 14
src/world/physics_world_bullet.cpp

@@ -649,23 +649,15 @@ struct PhysicsWorldImpl
 
 	void actor_set_kinematic(ActorInstance actor, bool kinematic)
 	{
-		ActorInstanceData &a = _actor[actor.i];
+		btRigidBody *body = _actor[actor.i].body;
+		int flags = body->m_collisionFlags;
 
 		if (kinematic) {
-			if (actor_is_static(actor)) {
-				const btTransform tr = to_btTransform(actor_world_pose(actor));
-				btDefaultMotionState *ms = CE_NEW(*_allocator, btDefaultMotionState)(tr);
-				a.body->setMotionState(ms);
-			}
-
-			a.body->m_collisionFlags |= btCollisionObject::CF_KINEMATIC_OBJECT;
-			a.body->setActivationState(DISABLE_DEACTIVATION);
+			body->m_collisionFlags = (flags | btCollisionObject::CF_KINEMATIC_OBJECT);
+			body->setActivationState(DISABLE_DEACTIVATION);
 		} else {
-			if (actor_is_static(actor))
-				CE_DELETE(*_allocator, a.body->m_optionalMotionState);
-
-			a.body->m_collisionFlags &= ~btCollisionObject::CF_KINEMATIC_OBJECT;
-			a.body->setActivationState(ACTIVE_TAG);
+			body->m_collisionFlags = (flags & ~btCollisionObject::CF_KINEMATIC_OBJECT);
+			body->setActivationState(ACTIVE_TAG);
 		}
 	}