A bit of instrumentation to figure out what's going on with physics actors.

prioritization
Diva Canto 2009-10-18 16:48:44 -07:00
parent e28ac42486
commit baed19d068
2 changed files with 14 additions and 1 deletions

View File

@ -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);
}

View File

@ -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);
}
}
}
}