From baed19d0688fe03fe8fba233bc6bd8306c71779f Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 18 Oct 2009 16:48:44 -0700 Subject: A bit of instrumentation to figure out what's going on with physics actors. --- OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | 9 ++++++++- OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region') 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 public int m_eventsubscription = 0; private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); + // unique UUID of this character object + public UUID m_uuid; + public bool bad = false; + 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) { + m_uuid = UUID.Random(); + // ode = dode; _velocity = new PhysicsVector(); _target_velocity = new PhysicsVector(); @@ -1112,10 +1118,11 @@ namespace OpenSim.Region.Physics.OdePlugin } catch (NullReferenceException) { + bad = true; _parent_scene.BadCharacter(this); vec = new d.Vector3(_position.X, _position.Y, _position.Z); base.RaiseOutOfBounds(_position); // Tells ScenePresence that there's a problem! - m_log.WarnFormat("[ODEPLUGIN]: Avatar Null reference for Avatar: {0}", m_name); + m_log.WarnFormat("[ODEPLUGIN]: Avatar Null reference for Avatar {0}, physical actor {1}", m_name, m_uuid); } 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 if (!_characters.Contains(chr)) { _characters.Add(chr); + if (chr.bad) + m_log.DebugFormat("[PHYSICS] Added BAD actor {0} to characters list", chr.m_uuid); } } } @@ -2581,7 +2583,11 @@ namespace OpenSim.Region.Physics.OdePlugin lock (_taintedActors) { if (!(_taintedActors.Contains(taintedchar))) + { _taintedActors.Add(taintedchar); + if (taintedchar.bad) + m_log.DebugFormat("[PHYSICS]: Added BAD actor {0} to tainted actors", taintedchar.m_uuid); + } } } } -- cgit v1.1