control manager now cleanly removes its controls during delete()

This commit is contained in:
Josh Wilson 2007-02-06 22:30:32 +00:00
parent c373e91564
commit c56249dd2f
2 changed files with 8 additions and 5 deletions

View File

@ -104,13 +104,12 @@ class ControlManager:
See also: add().
"""
assert self.notify.debugCall(id(self))
oldControls = self.controls.get(name)
oldControls = self.controls.pop(name,None)
if oldControls is not None:
print "Removing controls:", name
oldControls.disableAvatarControls()
oldControls.setCollisionsActive(0)
oldControls.delete()
del self.controls[name]
if __debug__:
def lockControls(self):
@ -159,9 +158,11 @@ class ControlManager:
forwardSpeed, jumpForce, reverseSpeed, rotateSpeed)
def delete(self):
import pdb;pdb.set_trace()
assert self.notify.debugCall(id(self))
self.disable()
# TODO: put controls delete code in here
for controls in self.controls.keys():
self.remove(controls)
del self.controls
del self.currentControls

View File

@ -30,8 +30,10 @@ class ShipPilot(PhysicsWalker):
'want-avatar-physics-indicator', 0)
# special methods
def __init__(self, gravity = -32.1740, standableGround=0.707,
hardLandingForce=16.0):
def __init__(self,
gravity = -32.1740,
standableGround=0.707,
hardLandingForce=16.0):
assert self.debugPrint(
"PhysicsWalker(gravity=%s, standableGround=%s)"%(
gravity, standableGround))