aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
diff options
context:
space:
mode:
authorTeravus Ovares2008-01-30 07:09:58 +0000
committerTeravus Ovares2008-01-30 07:09:58 +0000
commitfc9b3ec5a8c65f9b97e81f0e41abe4a9f45d4b3a (patch)
tree7117d76c491ecdb8cf4d4b302ee51aa3fac17502 /OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
parent* Fixed a crash if the server is unable to connect to the UserServer when a u... (diff)
downloadopensim-SC_OLD-fc9b3ec5a8c65f9b97e81f0e41abe4a9f45d4b3a.zip
opensim-SC_OLD-fc9b3ec5a8c65f9b97e81f0e41abe4a9f45d4b3a.tar.gz
opensim-SC_OLD-fc9b3ec5a8c65f9b97e81f0e41abe4a9f45d4b3a.tar.bz2
opensim-SC_OLD-fc9b3ec5a8c65f9b97e81f0e41abe4a9f45d4b3a.tar.xz
* Experimental ODE Update to make ODE more stable
* WARNING: This update will break *nix support. Will be restored in the next revision
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/ODECharacter.cs')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs6
1 files changed, 6 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
index 3f63477..a21b7eb 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
@@ -359,6 +359,9 @@ namespace OpenSim.Region.Physics.OdePlugin
359 CAPSULE_LENGTH = (SetSize.Z - ((SetSize.Z*0.52f))); // subtract 43% of the size 359 CAPSULE_LENGTH = (SetSize.Z - ((SetSize.Z*0.52f))); // subtract 43% of the size
360 OpenSim.Framework.Console.MainLog.Instance.Verbose("SIZE", CAPSULE_LENGTH.ToString()); 360 OpenSim.Framework.Console.MainLog.Instance.Verbose("SIZE", CAPSULE_LENGTH.ToString());
361 d.BodyDestroy(Body); 361 d.BodyDestroy(Body);
362
363 _parent_scene.waitForSpaceUnlock(_parent_scene.space);
364
362 d.GeomDestroy(Shell); 365 d.GeomDestroy(Shell);
363 AvatarGeomAndBodyCreation(_position.X, _position.Y, 366 AvatarGeomAndBodyCreation(_position.X, _position.Y,
364 _position.Z + (Math.Abs(CAPSULE_LENGTH - prevCapsule) * 2), m_tensor); 367 _position.Z + (Math.Abs(CAPSULE_LENGTH - prevCapsule) * 2), m_tensor);
@@ -389,6 +392,7 @@ namespace OpenSim.Region.Physics.OdePlugin
389 } 392 }
390 393
391 int dAMotorEuler = 1; 394 int dAMotorEuler = 1;
395 _parent_scene.waitForSpaceUnlock(_parent_scene.space);
392 Shell = d.CreateCapsule(_parent_scene.space, CAPSULE_RADIUS, CAPSULE_LENGTH); 396 Shell = d.CreateCapsule(_parent_scene.space, CAPSULE_RADIUS, CAPSULE_LENGTH);
393 d.MassSetCapsuleTotal(out ShellMass, m_mass, 2, CAPSULE_RADIUS, CAPSULE_LENGTH); 397 d.MassSetCapsuleTotal(out ShellMass, m_mass, 2, CAPSULE_RADIUS, CAPSULE_LENGTH);
394 Body = d.BodyCreate(_parent_scene.world); 398 Body = d.BodyCreate(_parent_scene.world);
@@ -781,6 +785,8 @@ namespace OpenSim.Region.Physics.OdePlugin
781 d.JointDestroy(Amotor); 785 d.JointDestroy(Amotor);
782 786
783 //kill the Geometry 787 //kill the Geometry
788 _parent_scene.waitForSpaceUnlock(_parent_scene.space);
789
784 d.GeomDestroy(Shell); 790 d.GeomDestroy(Shell);
785 _parent_scene.geom_name_map.Remove(Shell); 791 _parent_scene.geom_name_map.Remove(Shell);
786 792