aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-07-29 01:18:42 +0100
committerJustin Clark-Casey (justincc)2011-07-29 01:18:42 +0100
commitf3c5a5b745eb134d3dbd63012df3e5f5e964e71c (patch)
tree6f9baf84759c0453d8d12e321bb2faab5e416476 /OpenSim/Region/Physics
parentrefactor: Move another chunk of ninja code out of the OdeScene.Simulate() loo... (diff)
downloadopensim-SC-f3c5a5b745eb134d3dbd63012df3e5f5e964e71c.zip
opensim-SC-f3c5a5b745eb134d3dbd63012df3e5f5e964e71c.tar.gz
opensim-SC-f3c5a5b745eb134d3dbd63012df3e5f5e964e71c.tar.bz2
opensim-SC-f3c5a5b745eb134d3dbd63012df3e5f5e964e71c.tar.xz
fix extremely minor Ode bug where the _taintedPrimL list would always be cleared on every OdeScene.Simulate() even if it was already empty.
Diffstat (limited to 'OpenSim/Region/Physics')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdeScene.cs17
1 files changed, 14 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
index c436fca..cd2b156 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
@@ -2719,14 +2719,15 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
2719 { 2719 {
2720 if (prim.m_taintremove) 2720 if (prim.m_taintremove)
2721 { 2721 {
2722 //Console.WriteLine("Simulate calls RemovePrimThreadLocked"); 2722// Console.WriteLine("Simulate calls RemovePrimThreadLocked for {0}", prim.Name);
2723 RemovePrimThreadLocked(prim); 2723 RemovePrimThreadLocked(prim);
2724 } 2724 }
2725 else 2725 else
2726 { 2726 {
2727 //Console.WriteLine("Simulate calls ProcessTaints"); 2727// Console.WriteLine("Simulate calls ProcessTaints for {0}", prim.Name);
2728 prim.ProcessTaints(timeStep); 2728 prim.ProcessTaints(timeStep);
2729 } 2729 }
2730
2730 processedtaints = true; 2731 processedtaints = true;
2731 prim.m_collisionscore = 0; 2732 prim.m_collisionscore = 0;
2732 2733
@@ -2741,9 +2742,11 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
2741 SimulatePendingNINJAJoints(); 2742 SimulatePendingNINJAJoints();
2742 2743
2743 if (processedtaints) 2744 if (processedtaints)
2745 {
2744//Console.WriteLine("Simulate calls Clear of _taintedPrim list"); 2746//Console.WriteLine("Simulate calls Clear of _taintedPrim list");
2745 _taintedPrimH.Clear(); 2747 _taintedPrimH.Clear();
2746 _taintedPrimL.Clear(); 2748 _taintedPrimL.Clear();
2749 }
2747 } 2750 }
2748 2751
2749 // Move characters 2752 // Move characters
@@ -2839,7 +2842,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
2839 { 2842 {
2840 if (actor.bad) 2843 if (actor.bad)
2841 m_log.WarnFormat("[PHYSICS]: BAD Actor {0} in _characters list was not removed?", actor.m_uuid); 2844 m_log.WarnFormat("[PHYSICS]: BAD Actor {0} in _characters list was not removed?", actor.m_uuid);
2842 2845
2843 actor.UpdatePositionAndVelocity(); 2846 actor.UpdatePositionAndVelocity();
2844 } 2847 }
2845 } 2848 }
@@ -3096,6 +3099,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
3096 DoJointErrorMessage(joint, "joint could not yet be created; still pending"); 3099 DoJointErrorMessage(joint, "joint could not yet be created; still pending");
3097 } 3100 }
3098 } 3101 }
3102
3099 foreach (PhysicsJoint successfullyProcessedJoint in successfullyProcessedPendingJoints) 3103 foreach (PhysicsJoint successfullyProcessedJoint in successfullyProcessedPendingJoints)
3100 { 3104 {
3101 //DoJointErrorMessage(successfullyProcessedJoint, "finalizing succesfully procsssed joint " + successfullyProcessedJoint.ObjectNameInScene + " parms " + successfullyProcessedJoint.RawParams); 3105 //DoJointErrorMessage(successfullyProcessedJoint, "finalizing succesfully procsssed joint " + successfullyProcessedJoint.ObjectNameInScene + " parms " + successfullyProcessedJoint.RawParams);
@@ -3108,6 +3112,13 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
3108 } 3112 }
3109 } 3113 }
3110 3114
3115 /// <summary>
3116 /// Simulate the joint proxies of a NINJA actor.
3117 /// </summary>
3118 /// <remarks>
3119 /// Called as part of the Simulate() loop if NINJA physics is active. Must only be called from there.
3120 /// </remarks>
3121 /// <param name="actor"></param>
3111 protected void SimulateActorPendingJoints(OdePrim actor) 3122 protected void SimulateActorPendingJoints(OdePrim actor)
3112 { 3123 {
3113 // If an actor moved, move its joint proxy objects as well. 3124 // If an actor moved, move its joint proxy objects as well.