diff options
author | Justin Clark-Casey (justincc) | 2014-08-15 21:46:28 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2014-08-15 21:47:34 +0100 |
commit | e0c6bfa81e842f4ba1534882c6d76a3e6e94d68b (patch) | |
tree | 6826fc7df72508e3cc02a1d3795ab4065de65cf0 /OpenSim | |
parent | On teleport to a region that already has a child agent established (e.g. a ne... (diff) | |
download | opensim-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.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 9 |
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 |