don't clear the global controlForce's physicsObject if some other code has set it to move something else

This commit is contained in:
Darren Ranalli 2007-09-20 21:12:28 +00:00
parent 2ac571f424
commit ae64fbe298

View File

@ -77,8 +77,14 @@ class ShipPilot(PhysicsWalker):
def setAvatar(self, ship):
if ship is None:
base.controlForce.clearPhysicsObject()
base.controlForce.setVector(Vec3(0))
# only clear out the global controlForce's physics object if it hasn't
# been changed since we set it up for our boat
# this could still break if we have more than one ShipPilot referencing
# a single boat
if (self.ship is not None and
base.controlForce.getPhysicsObject() is self.ship.node().getPhysicsObject()):
base.controlForce.clearPhysicsObject()
base.controlForce.setVector(Vec3(0))
self.takedownPhysics()
self.setCollisionsActive(0)
self.ship = ship