diff options
author | Justin Clark-Casey (justincc) | 2011-07-29 01:18:42 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-07-29 01:18:42 +0100 |
commit | f3c5a5b745eb134d3dbd63012df3e5f5e964e71c (patch) | |
tree | 6f9baf84759c0453d8d12e321bb2faab5e416476 /OpenSim/Region | |
parent | refactor: Move another chunk of ninja code out of the OdeScene.Simulate() loo... (diff) | |
download | opensim-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')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 17 |
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. |