aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs18
1 files changed, 16 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 64bfaba..27df3b2 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1319,6 +1319,12 @@ namespace OpenSim.Region.Framework.Scenes
1319 1319
1320 if (m_allowMovement) 1320 if (m_allowMovement)
1321 { 1321 {
1322 if (agentData.UseClientAgentPosition)
1323 {
1324 m_moveToPositionInProgress = (agentData.ClientAgentPosition - AbsolutePosition).Length() > 0.2f;
1325 m_moveToPositionTarget = agentData.ClientAgentPosition;
1326 }
1327
1322 int i = 0; 1328 int i = 0;
1323 1329
1324 bool update_rotation = false; 1330 bool update_rotation = false;
@@ -1421,7 +1427,7 @@ namespace OpenSim.Region.Framework.Scenes
1421 if (bAllowUpdateMoveToPosition && (m_moveToPositionInProgress && !m_autopilotMoving)) 1427 if (bAllowUpdateMoveToPosition && (m_moveToPositionInProgress && !m_autopilotMoving))
1422 { 1428 {
1423 //Check the error term of the current position in relation to the target position 1429 //Check the error term of the current position in relation to the target position
1424 if (Util.GetDistanceTo(AbsolutePosition, m_moveToPositionTarget) <= 1.5f) 1430 if (Util.GetDistanceTo(AbsolutePosition, m_moveToPositionTarget) <= 0.5f)
1425 { 1431 {
1426 // we are close enough to the target 1432 // we are close enough to the target
1427 m_moveToPositionTarget = Vector3.Zero; 1433 m_moveToPositionTarget = Vector3.Zero;
@@ -2969,7 +2975,15 @@ namespace OpenSim.Region.Framework.Scenes
2969 protected void CrossToNewRegion() 2975 protected void CrossToNewRegion()
2970 { 2976 {
2971 InTransit(); 2977 InTransit();
2972 m_scene.CrossAgentToNewRegion(this, m_physicsActor.Flying); 2978 try
2979 {
2980 m_scene.CrossAgentToNewRegion(this, m_physicsActor.Flying);
2981 }
2982 catch(Exception ex)
2983 {
2984 m_scene.CrossAgentToNewRegion(this, false);
2985 }
2986
2973 } 2987 }
2974 2988
2975 public void InTransit() 2989 public void InTransit()