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.cs14
1 files changed, 10 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index e5a9a99..91e6e5a 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1140,9 +1140,19 @@ namespace OpenSim.Region.Framework.Scenes
1140 1140
1141 bool flying = ((m_AgentControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0); 1141 bool flying = ((m_AgentControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0);
1142 MakeRootAgent(AbsolutePosition, flying); 1142 MakeRootAgent(AbsolutePosition, flying);
1143 ControllingClient.MoveAgentIntoRegion(m_scene.RegionInfo, AbsolutePosition, look);
1144
1145// m_log.DebugFormat("[SCENE PRESENCE] Completed movement");
1143 1146
1144 if ((m_callbackURI != null) && !m_callbackURI.Equals("")) 1147 if ((m_callbackURI != null) && !m_callbackURI.Equals(""))
1145 { 1148 {
1149 // We cannot sleep here since this would hold up the inbound packet processing thread, as
1150 // CompleteMovement() is executed synchronously. However, it might be better to delay the release
1151 // here until we know for sure that the agent is active in this region. Sending AgentMovementComplete
1152 // is not enough for Imprudence clients - there appears to be a small delay (<200ms, <500ms) until they regard this
1153 // region as the current region, meaning that a close sent before then will fail the teleport.
1154// System.Threading.Thread.Sleep(2000);
1155
1146 m_log.DebugFormat( 1156 m_log.DebugFormat(
1147 "[SCENE PRESENCE]: Releasing {0} {1} with callback to {2}", 1157 "[SCENE PRESENCE]: Releasing {0} {1} with callback to {2}",
1148 client.Name, client.AgentId, m_callbackURI); 1158 client.Name, client.AgentId, m_callbackURI);
@@ -1151,9 +1161,6 @@ namespace OpenSim.Region.Framework.Scenes
1151 m_callbackURI = null; 1161 m_callbackURI = null;
1152 } 1162 }
1153 1163
1154// m_log.DebugFormat("[SCENE PRESENCE] Completed movement");
1155
1156 ControllingClient.MoveAgentIntoRegion(m_scene.RegionInfo, AbsolutePosition, look);
1157 ValidateAndSendAppearanceAndAgentData(); 1164 ValidateAndSendAppearanceAndAgentData();
1158 1165
1159 // Create child agents in neighbouring regions 1166 // Create child agents in neighbouring regions
@@ -1168,7 +1175,6 @@ namespace OpenSim.Region.Framework.Scenes
1168 friendsModule.SendFriendsOnlineIfNeeded(ControllingClient); 1175 friendsModule.SendFriendsOnlineIfNeeded(ControllingClient);
1169 } 1176 }
1170 1177
1171
1172// m_log.DebugFormat( 1178// m_log.DebugFormat(
1173// "[SCENE PRESENCE]: Completing movement of {0} into region {1} took {2}ms", 1179// "[SCENE PRESENCE]: Completing movement of {0} into region {1} took {2}ms",
1174// client.Name, Scene.RegionInfo.RegionName, (DateTime.Now - startTime).Milliseconds); 1180// client.Name, Scene.RegionInfo.RegionName, (DateTime.Now - startTime).Milliseconds);