aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
authorTeravus Ovares (Dan Olivares)2009-10-16 03:32:30 -0400
committerTeravus Ovares (Dan Olivares)2009-10-16 03:32:30 -0400
commitac2f98b846eba85ab3d9acb5bd0f355a404de86c (patch)
tree30cd43aeb953adaff3f9d833d4c1b05cbb61a135 /OpenSim/Region/Framework/Scenes/ScenePresence.cs
parentminor: Change commented out authentication service realm setting to "users" t... (diff)
downloadopensim-SC_OLD-ac2f98b846eba85ab3d9acb5bd0f355a404de86c.zip
opensim-SC_OLD-ac2f98b846eba85ab3d9acb5bd0f355a404de86c.tar.gz
opensim-SC_OLD-ac2f98b846eba85ab3d9acb5bd0f355a404de86c.tar.bz2
opensim-SC_OLD-ac2f98b846eba85ab3d9acb5bd0f355a404de86c.tar.xz
* A hacky attempt at resolving mantis #4260. I think ODE was unable to allocate memory, and therefore the unmanaged wrapper call fails or worse.. there's some unmanaged resource accounting in the ODEPlugin for ODECharacter that isn't being done properly now.
* The broken avatar may not be able to move, but it won't stop simulate from pressing on now. And, the simulator will try to destroy the avatar's physics proxy and recreate it again... but if this is what I think it is, it may not help.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs9
1 files changed, 9 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 646a483..96fa467 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3410,11 +3410,20 @@ namespace OpenSim.Region.Framework.Scenes
3410 scene.AddPhysicsActorTaint(m_physicsActor); 3410 scene.AddPhysicsActorTaint(m_physicsActor);
3411 //m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients; 3411 //m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients;
3412 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate; 3412 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate;
3413 m_physicsActor.OnOutOfBounds += OutOfBoundsCall; // Called for PhysicsActors when there's something wrong
3413 m_physicsActor.SubscribeEvents(500); 3414 m_physicsActor.SubscribeEvents(500);
3414 m_physicsActor.LocalID = LocalId; 3415 m_physicsActor.LocalID = LocalId;
3415 3416
3416 } 3417 }
3417 3418
3419 private void OutOfBoundsCall(PhysicsVector pos)
3420 {
3421 bool flying = m_physicsActor.Flying;
3422 RemoveFromPhysicalScene();
3423
3424 AddToPhysicalScene(flying);
3425 }
3426
3418 // Event called by the physics plugin to tell the avatar about a collision. 3427 // Event called by the physics plugin to tell the avatar about a collision.
3419 private void PhysicsCollisionUpdate(EventArgs e) 3428 private void PhysicsCollisionUpdate(EventArgs e)
3420 { 3429 {