aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.cs
diff options
context:
space:
mode:
authordiva2008-12-15 16:23:34 +0000
committerdiva2008-12-15 16:23:34 +0000
commit4b71b88114c6ac149571512c57ea005d85147f54 (patch)
tree18b638632d5a85b1670c9e1832398fa2d0dfb6e7 /OpenSim/Region/Environment/Scenes/Scene.cs
parentUpdate svn properties. (diff)
downloadopensim-SC-4b71b88114c6ac149571512c57ea005d85147f54.zip
opensim-SC-4b71b88114c6ac149571512c57ea005d85147f54.tar.gz
opensim-SC-4b71b88114c6ac149571512c57ea005d85147f54.tar.bz2
opensim-SC-4b71b88114c6ac149571512c57ea005d85147f54.tar.xz
Bug fix in new child agents management. Thanks DigiDaz for helping identify this issue.
We need to update all child agents whenever the root agent crosses regions. The update now includes child agents in common neighbours. This is so that those get updated with the seeds of the new child agents that are spawned from the receiving region. This also fixes some timing issues. We need to close child agents from the originating region before we update child agents in the receiving region.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs17
1 files changed, 12 insertions, 5 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 6ce19c6..9497043 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -2657,7 +2657,7 @@ namespace OpenSim.Region.Environment.Scenes
2657 GetAvatarAppearance(client, out appearance); 2657 GetAvatarAppearance(client, out appearance);
2658 2658
2659 ScenePresence avatar = m_sceneGraph.CreateAndAddChildScenePresence(client, appearance); 2659 ScenePresence avatar = m_sceneGraph.CreateAndAddChildScenePresence(client, appearance);
2660 avatar.KnownRegions = GetChildrenSeeds(avatar.UUID); 2660 //avatar.KnownRegions = GetChildrenSeeds(avatar.UUID);
2661 return avatar; 2661 return avatar;
2662 } 2662 }
2663 2663
@@ -2871,9 +2871,6 @@ namespace OpenSim.Region.Environment.Scenes
2871 /// <param name="agent"></param> 2871 /// <param name="agent"></param>
2872 public void NewUserConnection(AgentCircuitData agent) 2872 public void NewUserConnection(AgentCircuitData agent)
2873 { 2873 {
2874 m_log.DebugFormat("[CONNECTION DEBUGGING] Adding NewUserConnection for {0} in {1} with CC of {2}", agent.AgentID,
2875 RegionInfo.RegionName, agent.circuitcode);
2876
2877 if (m_regInfo.EstateSettings.IsBanned(agent.AgentID)) 2874 if (m_regInfo.EstateSettings.IsBanned(agent.AgentID))
2878 { 2875 {
2879 m_log.WarnFormat( 2876 m_log.WarnFormat(
@@ -2883,9 +2880,19 @@ namespace OpenSim.Region.Environment.Scenes
2883 2880
2884 /// Diva: Horrible stuff! 2881 /// Diva: Horrible stuff!
2885 capsPaths[agent.AgentID] = agent.CapsPath; 2882 capsPaths[agent.AgentID] = agent.CapsPath;
2886 //m_log.DebugFormat("------------>child seeds in {0}: {1}", RegionInfo.RegionName, ((agent.ChildrenCapSeeds == null) ? "null" : agent.ChildrenCapSeeds.Count.ToString()));
2887 childrenSeeds[agent.AgentID] = ((agent.ChildrenCapSeeds == null) ? new Dictionary<ulong, string>() : agent.ChildrenCapSeeds); 2883 childrenSeeds[agent.AgentID] = ((agent.ChildrenCapSeeds == null) ? new Dictionary<ulong, string>() : agent.ChildrenCapSeeds);
2888 2884
2885 ScenePresence sp = m_sceneGraph.GetScenePresence(agent.AgentID);
2886 if (sp != null)
2887 {
2888 m_log.DebugFormat("[CONNECTION DEBUGGING]: Updated agent {0} in {1}", agent.AgentID, RegionInfo.RegionName);
2889 sp.AdjustKnownSeeds();
2890 return;
2891 }
2892
2893 m_log.DebugFormat("[CONNECTION DEBUGGING]: Adding NewUserConnection for {0} in {1} with CC of {2}", agent.AgentID,
2894 RegionInfo.RegionName, agent.circuitcode);
2895
2889 AddCapsHandler(agent.AgentID); 2896 AddCapsHandler(agent.AgentID);
2890 2897
2891 if (!agent.child) 2898 if (!agent.child)