diff options
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs index d1c1c25..e6cf915 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs | |||
@@ -1538,12 +1538,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1538 | { | 1538 | { |
1539 | // Reset the collision values to false | 1539 | // Reset the collision values to false |
1540 | // since we don't know if we're colliding yet | 1540 | // since we don't know if we're colliding yet |
1541 | |||
1542 | // For some reason this can happen. Don't ask... | ||
1543 | // | ||
1544 | if (chr == null) | ||
1545 | continue; | ||
1546 | |||
1547 | if (chr.Shell == IntPtr.Zero || chr.Body == IntPtr.Zero) | 1541 | if (chr.Shell == IntPtr.Zero || chr.Body == IntPtr.Zero) |
1548 | continue; | 1542 | continue; |
1549 | 1543 | ||
@@ -2056,7 +2050,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2056 | //m_log.Debug("RemoveAllJointsConnectedToActor: start"); | 2050 | //m_log.Debug("RemoveAllJointsConnectedToActor: start"); |
2057 | if (actor.SOPName != null && joints_connecting_actor.ContainsKey(actor.SOPName) && joints_connecting_actor[actor.SOPName] != null) | 2051 | if (actor.SOPName != null && joints_connecting_actor.ContainsKey(actor.SOPName) && joints_connecting_actor[actor.SOPName] != null) |
2058 | { | 2052 | { |
2059 | |||
2060 | List<PhysicsJoint> jointsToRemove = new List<PhysicsJoint>(); | 2053 | List<PhysicsJoint> jointsToRemove = new List<PhysicsJoint>(); |
2061 | //TODO: merge these 2 loops (originally it was needed to avoid altering a list being iterated over, but it is no longer needed due to the joint request queue mechanism) | 2054 | //TODO: merge these 2 loops (originally it was needed to avoid altering a list being iterated over, but it is no longer needed due to the joint request queue mechanism) |
2062 | foreach (PhysicsJoint j in joints_connecting_actor[actor.SOPName]) | 2055 | foreach (PhysicsJoint j in joints_connecting_actor[actor.SOPName]) |
@@ -2801,10 +2794,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name); | |||
2801 | 2794 | ||
2802 | // Move characters | 2795 | // Move characters |
2803 | foreach (OdeCharacter actor in _characters) | 2796 | foreach (OdeCharacter actor in _characters) |
2804 | { | 2797 | actor.Move(defects); |
2805 | if (actor != null) | ||
2806 | actor.Move(defects); | ||
2807 | } | ||
2808 | 2798 | ||
2809 | if (defects.Count != 0) | 2799 | if (defects.Count != 0) |
2810 | { | 2800 | { |
@@ -2870,13 +2860,10 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name); | |||
2870 | 2860 | ||
2871 | foreach (OdeCharacter actor in _characters) | 2861 | foreach (OdeCharacter actor in _characters) |
2872 | { | 2862 | { |
2873 | if (actor != null) | 2863 | if (actor.bad) |
2874 | { | 2864 | m_log.WarnFormat("[PHYSICS]: BAD Actor {0} in _characters list was not removed?", actor.m_uuid); |
2875 | if (actor.bad) | ||
2876 | m_log.WarnFormat("[PHYSICS]: BAD Actor {0} in _characters list was not removed?", actor.m_uuid); | ||
2877 | 2865 | ||
2878 | actor.UpdatePositionAndVelocity(defects); | 2866 | actor.UpdatePositionAndVelocity(defects); |
2879 | } | ||
2880 | } | 2867 | } |
2881 | 2868 | ||
2882 | if (defects.Count != 0) | 2869 | if (defects.Count != 0) |