move reset code out of HandleMoveToTargetUpdate() so that we only call it where needed instead of passing in a flag

bulletsim
Justin Clark-Casey (justincc) 2011-08-04 01:16:24 +01:00
parent fc64cc2439
commit 7b2b47530e
2 changed files with 13 additions and 17 deletions

View File

@ -1485,9 +1485,17 @@ namespace OpenSim.Region.Framework.Scenes
} }
// If the user has pressed a key then we want to cancel any move to target. // If the user has pressed a key then we want to cancel any move to target.
if (HandleMoveToTargetUpdate( if (DCFlagKeyPressed && m_moveToPositionInProgress)
ref agent_control_v3, bodyRotation, DCFlagKeyPressed, bAllowUpdateMoveToPosition)) {
ResetMoveToTarget();
update_movementflag = true; update_movementflag = true;
}
else
{
if (HandleMoveToTargetUpdate(
ref agent_control_v3, bodyRotation, bAllowUpdateMoveToPosition))
update_movementflag = true;
}
} }
// Cause the avatar to stop flying if it's colliding // Cause the avatar to stop flying if it's colliding
@ -1546,27 +1554,15 @@ namespace OpenSim.Region.Framework.Scenes
/// </remarks> /// </remarks>
/// <param value="agent_control_v3">Cumulative agent movement that this method will update.</param> /// <param value="agent_control_v3">Cumulative agent movement that this method will update.</param>
/// <param value="bodyRotation">New body rotation of the avatar.</param> /// <param value="bodyRotation">New body rotation of the avatar.</param>
/// <param value="reset">If true, clear the move to position</param>
/// <param value="allowUpdate">If true, allow the update in principle.</param> /// <param value="allowUpdate">If true, allow the update in principle.</param>
/// <returns>True if movement has been updated in some way. False otherwise.</returns> /// <returns>True if movement has been updated in some way. False otherwise.</returns>
public bool HandleMoveToTargetUpdate( public bool HandleMoveToTargetUpdate(
ref Vector3 agent_control_v3, Quaternion bodyRotation, bool reset, bool allowUpdate) ref Vector3 agent_control_v3, Quaternion bodyRotation, bool allowUpdate)
{ {
// m_log.DebugFormat("[SCENE PRESENCE]: Called HandleMoveToTargetUpdate() for {0}", Name); // m_log.DebugFormat("[SCENE PRESENCE]: Called HandleMoveToTargetUpdate() for {0}", Name);
bool updated = false; bool updated = false;
if (reset)
{
if (m_moveToPositionInProgress)
{
ResetMoveToTarget();
updated = true;
}
return updated;
}
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE PRESENCE]: bAllowUpdateMoveToPosition {0}, m_moveToPositionInProgress {1}, m_autopilotMoving {2}", // "[SCENE PRESENCE]: bAllowUpdateMoveToPosition {0}, m_moveToPositionInProgress {1}, m_autopilotMoving {2}",
// allowUpdate, m_moveToPositionInProgress, m_autopilotMoving); // allowUpdate, m_moveToPositionInProgress, m_autopilotMoving);
@ -1712,7 +1708,7 @@ namespace OpenSim.Region.Framework.Scenes
MoveToPositionTarget = pos; MoveToPositionTarget = pos;
Vector3 agent_control_v3 = new Vector3(); Vector3 agent_control_v3 = new Vector3();
HandleMoveToTargetUpdate(ref agent_control_v3, Rotation, false, true); HandleMoveToTargetUpdate(ref agent_control_v3, Rotation, true);
AddNewMovement(agent_control_v3, Rotation); AddNewMovement(agent_control_v3, Rotation);
} }

View File

@ -87,7 +87,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
else else
{ {
Vector3 agent_control_v3 = new Vector3(); Vector3 agent_control_v3 = new Vector3();
presence.HandleMoveToTargetUpdate(ref agent_control_v3, presence.Rotation, false, true); presence.HandleMoveToTargetUpdate(ref agent_control_v3, presence.Rotation, true);
presence.AddNewMovement(agent_control_v3, presence.Rotation); presence.AddNewMovement(agent_control_v3, presence.Rotation);
} }
// //