A bit of instrumentation to figure out what's going on with physics actors.
parent
e28ac42486
commit
baed19d068
|
@ -139,8 +139,14 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
public int m_eventsubscription = 0;
|
public int m_eventsubscription = 0;
|
||||||
private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate();
|
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)
|
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;
|
// ode = dode;
|
||||||
_velocity = new PhysicsVector();
|
_velocity = new PhysicsVector();
|
||||||
_target_velocity = new PhysicsVector();
|
_target_velocity = new PhysicsVector();
|
||||||
|
@ -1112,10 +1118,11 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
catch (NullReferenceException)
|
catch (NullReferenceException)
|
||||||
{
|
{
|
||||||
|
bad = true;
|
||||||
_parent_scene.BadCharacter(this);
|
_parent_scene.BadCharacter(this);
|
||||||
vec = new d.Vector3(_position.X, _position.Y, _position.Z);
|
vec = new d.Vector3(_position.X, _position.Y, _position.Z);
|
||||||
base.RaiseOutOfBounds(_position); // Tells ScenePresence that there's a problem!
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1664,6 +1664,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
if (!_characters.Contains(chr))
|
if (!_characters.Contains(chr))
|
||||||
{
|
{
|
||||||
_characters.Add(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)
|
lock (_taintedActors)
|
||||||
{
|
{
|
||||||
if (!(_taintedActors.Contains(taintedchar)))
|
if (!(_taintedActors.Contains(taintedchar)))
|
||||||
|
{
|
||||||
_taintedActors.Add(taintedchar);
|
_taintedActors.Add(taintedchar);
|
||||||
|
if (taintedchar.bad)
|
||||||
|
m_log.DebugFormat("[PHYSICS]: Added BAD actor {0} to tainted actors", taintedchar.m_uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue