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.cs23
1 files changed, 21 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 2cfdd94..2cf0e9d 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2043,6 +2043,10 @@ namespace OpenSim.Region.Framework.Scenes
2043 look = new Vector3(0.99f, 0.042f, 0); 2043 look = new Vector3(0.99f, 0.042f, 0);
2044 } 2044 }
2045 2045
2046 // Check Default Location (Also See EntityTransferModule.TeleportAgentWithinRegion)
2047 if (AbsolutePosition.X == 128f && AbsolutePosition.Y == 128f)
2048 AbsolutePosition = Scene.RegionInfo.DefaultLandingPoint;
2049
2046 if (!MakeRootAgent(AbsolutePosition, flying, ref look)) 2050 if (!MakeRootAgent(AbsolutePosition, flying, ref look))
2047 { 2051 {
2048 m_log.DebugFormat( 2052 m_log.DebugFormat(
@@ -2071,14 +2075,13 @@ namespace OpenSim.Region.Framework.Scenes
2071 m_log.DebugFormat("[CompleteMovement]: Missing COF for {0} is {1}", client.AgentId, COF); 2075 m_log.DebugFormat("[CompleteMovement]: Missing COF for {0} is {1}", client.AgentId, COF);
2072 } 2076 }
2073 2077
2074 if(!gotCrossUpdate)
2075 RotateToLookAt(look);
2076 2078
2077 // Tell the client that we're totally ready 2079 // Tell the client that we're totally ready
2078 ControllingClient.MoveAgentIntoRegion(m_scene.RegionInfo, AbsolutePosition, look); 2080 ControllingClient.MoveAgentIntoRegion(m_scene.RegionInfo, AbsolutePosition, look);
2079 2081
2080 m_log.DebugFormat("[CompleteMovement] MoveAgentIntoRegion: {0}ms", Util.EnvironmentTickCountSubtract(ts)); 2082 m_log.DebugFormat("[CompleteMovement] MoveAgentIntoRegion: {0}ms", Util.EnvironmentTickCountSubtract(ts));
2081 2083
2084
2082 if (!string.IsNullOrEmpty(m_callbackURI)) 2085 if (!string.IsNullOrEmpty(m_callbackURI))
2083 { 2086 {
2084 // We cannot sleep here since this would hold up the inbound packet processing thread, as 2087 // We cannot sleep here since this would hold up the inbound packet processing thread, as
@@ -2107,12 +2110,28 @@ namespace OpenSim.Region.Framework.Scenes
2107// client.Name, client.AgentId, m_scene.RegionInfo.RegionName); 2110// client.Name, client.AgentId, m_scene.RegionInfo.RegionName);
2108// } 2111// }
2109 2112
2113
2110 m_log.DebugFormat("[CompleteMovement] ReleaseAgent: {0}ms", Util.EnvironmentTickCountSubtract(ts)); 2114 m_log.DebugFormat("[CompleteMovement] ReleaseAgent: {0}ms", Util.EnvironmentTickCountSubtract(ts));
2111 2115
2116
2117 if(m_teleportFlags > 0) //sanity check
2118 gotCrossUpdate = false;
2119
2120 if(!gotCrossUpdate)
2121 RotateToLookAt(look);
2122
2123
2112// start sending terrain patchs 2124// start sending terrain patchs
2113 if (!gotCrossUpdate && !isNPC) 2125 if (!gotCrossUpdate && !isNPC)
2114 Scene.SendLayerData(ControllingClient); 2126 Scene.SendLayerData(ControllingClient);
2115 2127
2128 // HG delay
2129 if((m_teleportFlags & TeleportFlags.ViaHGLogin) != 0)
2130 {
2131 Thread.Sleep(500);
2132 m_log.DebugFormat("[CompleteMovement] HG delay: {0}ms", Util.EnvironmentTickCountSubtract(ts));
2133 }
2134
2116 m_previusParcelHide = false; 2135 m_previusParcelHide = false;
2117 m_previusParcelUUID = UUID.Zero; 2136 m_previusParcelUUID = UUID.Zero;
2118 m_currentParcelHide = false; 2137 m_currentParcelHide = false;