Fixing a bug introduced yesterday. This put the precondition test inside CheckForBorderCrossing the right way.

iar_mods
Diva Canto 2011-12-22 08:18:03 -08:00
parent bb0c6a498b
commit 219ec7ef20
1 changed files with 129 additions and 125 deletions

View File

@ -2736,19 +2736,22 @@ namespace OpenSim.Region.Framework.Scenes
/// </remarks> /// </remarks>
protected void CheckForBorderCrossing() protected void CheckForBorderCrossing()
{ {
// Check that we we are not a child and have a physics actor or we're sitting on something // Check that we we are not a child
if (IsChildAgent || (ParentID == 0 && PhysicsActor != null || ParentID != 0)) if (IsChildAgent)
return; return;
// We only do this if we have a physics actor or we're sitting on something
if (ParentID == 0 && PhysicsActor != null || ParentID != 0)
{
Vector3 pos2 = AbsolutePosition; Vector3 pos2 = AbsolutePosition;
Vector3 vel = Velocity; Vector3 vel = Velocity;
int neighbor = 0; int neighbor = 0;
int[] fix = new int[2]; int[] fix = new int[2];
float timeStep = 0.1f; float timeStep = 0.1f;
pos2.X = pos2.X + (vel.X*timeStep); pos2.X = pos2.X + (vel.X * timeStep);
pos2.Y = pos2.Y + (vel.Y*timeStep); pos2.Y = pos2.Y + (vel.Y * timeStep);
pos2.Z = pos2.Z + (vel.Z*timeStep); pos2.Z = pos2.Z + (vel.Z * timeStep);
if (!IsInTransit) if (!IsInTransit)
{ {
@ -2865,7 +2868,8 @@ namespace OpenSim.Region.Framework.Scenes
pos2.Y = pos2.Y + (vel.Y * timeStep); pos2.Y = pos2.Y + (vel.Y * timeStep);
// Don't touch the Z // Don't touch the Z
m_pos = pos2; m_pos = pos2;
m_log.ErrorFormat("m_pos={0}", m_pos); m_log.DebugFormat("[SCENE PRESENCE]: In transit m_pos={0}", m_pos);
}
} }
} }