From d3050724d8fdb0de5b87285b782de9c4d2f9bac7 Mon Sep 17 00:00:00 2001 From: dan miller Date: Fri, 21 Sep 2007 02:31:36 +0000 Subject: physics-related fixes; should stabilize border crossings --- OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Physics/OdePlugin/OdePlugin.cs') diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 8b49f70..8d142ab 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs @@ -152,9 +152,8 @@ namespace OpenSim.Region.Physics.OdePlugin public override void RemoveAvatar(PhysicsActor actor) { - OdeCharacter och = (OdeCharacter)actor; - d.BodyDestroy(och.BoundingCapsule); - _characters.Remove(och); + ((OdeCharacter)actor).Destroy(); + _characters.Remove((OdeCharacter)actor); } public override void RemovePrim(PhysicsActor prim) @@ -449,6 +448,15 @@ namespace OpenSim.Region.Physics.OdePlugin this._position.Y = vec.Y; this._position.Z = vec.Z; } + + public void Destroy() + { + lock (OdeScene.OdeLock) + { + d.GeomDestroy(this.capsule_geom); + d.BodyDestroy(this.BoundingCapsule); + } + } } public class OdePrim : PhysicsActor -- cgit v1.1