aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin
diff options
context:
space:
mode:
authorDiva Canto2009-10-18 16:48:44 -0700
committerDiva Canto2009-10-18 16:48:44 -0700
commitbaed19d0688fe03fe8fba233bc6bd8306c71779f (patch)
treedc7a07a88d4850530928e4e52ce69ab533340328 /OpenSim/Region/Physics/OdePlugin
parentWrapped the contents of the IncomingPacketHandler loop in a try/catch statement (diff)
downloadopensim-SC_OLD-baed19d0688fe03fe8fba233bc6bd8306c71779f.zip
opensim-SC_OLD-baed19d0688fe03fe8fba233bc6bd8306c71779f.tar.gz
opensim-SC_OLD-baed19d0688fe03fe8fba233bc6bd8306c71779f.tar.bz2
opensim-SC_OLD-baed19d0688fe03fe8fba233bc6bd8306c71779f.tar.xz
A bit of instrumentation to figure out what's going on with physics actors.
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs9
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs6
2 files changed, 14 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
index 1fff846..ef0e56e 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
@@ -139,8 +139,14 @@ namespace OpenSim.Region.Physics.OdePlugin
139 public int m_eventsubscription = 0; 139 public int m_eventsubscription = 0;
140 private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); 140 private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate();
141 141
142 // unique UUID of this character object
143 public UUID m_uuid;
144 public bool bad = false;
145
142 public OdeCharacter(String avName, OdeScene parent_scene, PhysicsVector pos, CollisionLocker dode, PhysicsVector size, float pid_d, float pid_p, float capsule_radius, float tensor, float density, float height_fudge_factor, float walk_divisor, float rundivisor) 146 public OdeCharacter(String avName, OdeScene parent_scene, PhysicsVector pos, CollisionLocker dode, PhysicsVector size, float pid_d, float pid_p, float capsule_radius, float tensor, float density, float height_fudge_factor, float walk_divisor, float rundivisor)
143 { 147 {
148 m_uuid = UUID.Random();
149
144 // ode = dode; 150 // ode = dode;
145 _velocity = new PhysicsVector(); 151 _velocity = new PhysicsVector();
146 _target_velocity = new PhysicsVector(); 152 _target_velocity = new PhysicsVector();
@@ -1112,10 +1118,11 @@ namespace OpenSim.Region.Physics.OdePlugin
1112 } 1118 }
1113 catch (NullReferenceException) 1119 catch (NullReferenceException)
1114 { 1120 {
1121 bad = true;
1115 _parent_scene.BadCharacter(this); 1122 _parent_scene.BadCharacter(this);
1116 vec = new d.Vector3(_position.X, _position.Y, _position.Z); 1123 vec = new d.Vector3(_position.X, _position.Y, _position.Z);
1117 base.RaiseOutOfBounds(_position); // Tells ScenePresence that there's a problem! 1124 base.RaiseOutOfBounds(_position); // Tells ScenePresence that there's a problem!
1118 m_log.WarnFormat("[ODEPLUGIN]: Avatar Null reference for Avatar: {0}", m_name); 1125 m_log.WarnFormat("[ODEPLUGIN]: Avatar Null reference for Avatar {0}, physical actor {1}", m_name, m_uuid);
1119 } 1126 }
1120 1127
1121 1128
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index 0e03e81..7187fbe 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -1664,6 +1664,8 @@ namespace OpenSim.Region.Physics.OdePlugin
1664 if (!_characters.Contains(chr)) 1664 if (!_characters.Contains(chr))
1665 { 1665 {
1666 _characters.Add(chr); 1666 _characters.Add(chr);
1667 if (chr.bad)
1668 m_log.DebugFormat("[PHYSICS] Added BAD actor {0} to characters list", chr.m_uuid);
1667 } 1669 }
1668 } 1670 }
1669 } 1671 }
@@ -2581,7 +2583,11 @@ namespace OpenSim.Region.Physics.OdePlugin
2581 lock (_taintedActors) 2583 lock (_taintedActors)
2582 { 2584 {
2583 if (!(_taintedActors.Contains(taintedchar))) 2585 if (!(_taintedActors.Contains(taintedchar)))
2586 {
2584 _taintedActors.Add(taintedchar); 2587 _taintedActors.Add(taintedchar);
2588 if (taintedchar.bad)
2589 m_log.DebugFormat("[PHYSICS]: Added BAD actor {0} to tainted actors", taintedchar.m_uuid);
2590 }
2585 } 2591 }
2586 } 2592 }
2587 } 2593 }