aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2014-08-15 21:46:28 +0100
committerJustin Clark-Casey (justincc)2014-08-15 21:47:34 +0100
commite0c6bfa81e842f4ba1534882c6d76a3e6e94d68b (patch)
tree6826fc7df72508e3cc02a1d3795ab4065de65cf0 /OpenSim
parentOn teleport to a region that already has a child agent established (e.g. a ne... (diff)
downloadopensim-SC-e0c6bfa81e842f4ba1534882c6d76a3e6e94d68b.zip
opensim-SC-e0c6bfa81e842f4ba1534882c6d76a3e6e94d68b.tar.gz
opensim-SC-e0c6bfa81e842f4ba1534882c6d76a3e6e94d68b.tar.bz2
opensim-SC-e0c6bfa81e842f4ba1534882c6d76a3e6e94d68b.tar.xz
If a user moves back in sight of a child region before the agent has been closed on teleport, don't unnecessarily resend all avatar and object data about that region.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/ISceneAgent.cs5
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs9
3 files changed, 9 insertions, 7 deletions
diff --git a/OpenSim/Framework/ISceneAgent.cs b/OpenSim/Framework/ISceneAgent.cs
index 1e8f896..ca1399c 100644
--- a/OpenSim/Framework/ISceneAgent.cs
+++ b/OpenSim/Framework/ISceneAgent.cs
@@ -66,6 +66,11 @@ namespace OpenSim.Framework
66 AvatarAppearance Appearance { get; set; } 66 AvatarAppearance Appearance { get; set; }
67 67
68 /// <summary> 68 /// <summary>
69 /// Set if initial data about the scene (avatars, objects) has been sent to the client.
70 /// </summary>
71 bool SentInitialDataToClient { get; }
72
73 /// <summary>
69 /// Send initial scene data to the client controlling this agent 74 /// Send initial scene data to the client controlling this agent
70 /// </summary> 75 /// </summary>
71 /// <remarks> 76 /// <remarks>
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 0df22bf..708a0a1 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -1740,7 +1740,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1740 AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code); 1740 AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
1741 bool tp = (aCircuit.teleportFlags > 0); 1741 bool tp = (aCircuit.teleportFlags > 0);
1742 // Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from 1742 // Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from
1743 if (!tp) 1743 if (!tp && !client.SceneAgent.SentInitialDataToClient)
1744 client.SceneAgent.SendInitialDataToClient(); 1744 client.SceneAgent.SendInitialDataToClient();
1745 } 1745 }
1746 } 1746 }
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 272fa16..ebbc6f3 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -286,9 +286,6 @@ namespace OpenSim.Region.Framework.Scenes
286 } 286 }
287 } 287 }
288 288
289 /// <summary>
290 /// Set if initial data about the scene (avatars, objects) has been sent to the ControllingClient.
291 /// </summary>
292 public bool SentInitialDataToClient { get; private set; } 289 public bool SentInitialDataToClient { get; private set; }
293 290
294 /// <summary> 291 /// <summary>
@@ -3351,9 +3348,9 @@ namespace OpenSim.Region.Framework.Scenes
3351 // Send all scene object to the new client 3348 // Send all scene object to the new client
3352 Util.RunThreadNoTimeout(delegate 3349 Util.RunThreadNoTimeout(delegate
3353 { 3350 {
3354 m_log.DebugFormat( 3351// m_log.DebugFormat(
3355 "[SCENE PRESENCE]: Sending initial data to {0} agent {1} in {2}, tp flags {3}", 3352// "[SCENE PRESENCE]: Sending initial data to {0} agent {1} in {2}, tp flags {3}",
3356 IsChildAgent ? "child" : "root", Name, Scene.Name, m_teleportFlags); 3353// IsChildAgent ? "child" : "root", Name, Scene.Name, m_teleportFlags);
3357 3354
3358 // we created a new ScenePresence (a new child agent) in a fresh region. 3355 // we created a new ScenePresence (a new child agent) in a fresh region.
3359 // Request info about all the (root) agents in this region 3356 // Request info about all the (root) agents in this region