aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Chat/Tests/ChatModuleTests.cs16
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs31
2 files changed, 37 insertions, 10 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/Tests/ChatModuleTests.cs b/OpenSim/Region/CoreModules/Avatar/Chat/Tests/ChatModuleTests.cs
index 0e7be7d..e63629e 100644
--- a/OpenSim/Region/CoreModules/Avatar/Chat/Tests/ChatModuleTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Chat/Tests/ChatModuleTests.cs
@@ -142,8 +142,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat.Tests
142 142
143 // We must update the scenes in order to make the root new root agents trigger position updates in their 143 // We must update the scenes in order to make the root new root agents trigger position updates in their
144 // children. 144 // children.
145 sceneWest.Update(3); 145 sceneWest.Update(4);
146 sceneEast.Update(3); 146 sceneEast.Update(4);
147 sp1.DrawDistance += 64;
148 sp2.DrawDistance += 64;
149 sceneWest.Update(2);
150 sceneEast.Update(2);
147 151
148 // Check child positions are correct. 152 // Check child positions are correct.
149 Assert.AreEqual( 153 Assert.AreEqual(
@@ -233,8 +237,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat.Tests
233 237
234 // We must update the scenes in order to make the root new root agents trigger position updates in their 238 // We must update the scenes in order to make the root new root agents trigger position updates in their
235 // children. 239 // children.
236 sceneNorth.Update(3); 240 sceneNorth.Update(4);
237 sceneSouth.Update(3); 241 sceneSouth.Update(4);
242 sp1.DrawDistance += 64;
243 sp2.DrawDistance += 64;
244 sceneNorth.Update(2);
245 sceneSouth.Update(2);
238 246
239 // Check child positions are correct. 247 // Check child positions are correct.
240 Assert.AreEqual( 248 Assert.AreEqual(
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 12887fb..c71d20d 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2168,8 +2168,11 @@ namespace OpenSim.Region.Framework.Scenes
2168 m_inTransit = false; 2168 m_inTransit = false;
2169 2169
2170 // Tell the client that we're ready to send rest 2170 // Tell the client that we're ready to send rest
2171 m_gotRegionHandShake = false; // allow it 2171 if (!gotCrossUpdate)
2172 ControllingClient.SendRegionHandshake(); 2172 {
2173 m_gotRegionHandShake = false; // allow it if not a crossing
2174 ControllingClient.SendRegionHandshake();
2175 }
2173 2176
2174 ControllingClient.MoveAgentIntoRegion(m_scene.RegionInfo, AbsolutePosition, look); 2177 ControllingClient.MoveAgentIntoRegion(m_scene.RegionInfo, AbsolutePosition, look);
2175 2178
@@ -2300,6 +2303,22 @@ namespace OpenSim.Region.Framework.Scenes
2300 2303
2301 if (!IsNPC) 2304 if (!IsNPC)
2302 { 2305 {
2306 if(gotCrossUpdate)
2307 {
2308 // Create child agents in neighbouring regions
2309 IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
2310 if (m_agentTransfer != null)
2311 {
2312 m_agentTransfer.EnableChildAgents(this);
2313 }
2314
2315 m_lastChildUpdatesTime = Util.EnvironmentTickCount() + 10000;
2316 m_lastChildAgentUpdatePosition = AbsolutePosition;
2317 m_lastChildAgentUpdateDrawDistance = DrawDistance;
2318
2319 m_lastChildAgentUpdateGodLevel = GodController.ViwerUIGodLevel;
2320 m_childUpdatesBusy = false; // allow them
2321 }
2303 // send the rest of the world 2322 // send the rest of the world
2304 if (m_teleportFlags > 0 || m_currentParcelHide) 2323 if (m_teleportFlags > 0 || m_currentParcelHide)
2305 //SendInitialDataToMe(); 2324 //SendInitialDataToMe();
@@ -4001,8 +4020,8 @@ namespace OpenSim.Region.Framework.Scenes
4001 4020
4002 Scene.SimulationService.ReleaseAgent(originID, UUID, m_callbackURI); 4021 Scene.SimulationService.ReleaseAgent(originID, UUID, m_callbackURI);
4003 m_callbackURI = null; 4022 m_callbackURI = null;
4004 NeedInitialData = 4; 4023 //NeedInitialData = 4;
4005 return; 4024 //return;
4006 } 4025 }
4007 // v0.7 close HG sender region 4026 // v0.7 close HG sender region
4008 if (!string.IsNullOrEmpty(m_newCallbackURI)) 4027 if (!string.IsNullOrEmpty(m_newCallbackURI))
@@ -4018,8 +4037,8 @@ namespace OpenSim.Region.Framework.Scenes
4018 4037
4019 Scene.SimulationService.ReleaseAgent(originID, UUID, m_newCallbackURI); 4038 Scene.SimulationService.ReleaseAgent(originID, UUID, m_newCallbackURI);
4020 m_newCallbackURI = null; 4039 m_newCallbackURI = null;
4021 NeedInitialData = 4; 4040 //NeedInitialData = 4;
4022 return; 4041 //return;
4023 } 4042 }
4024 4043
4025 // Create child agents in neighbouring regions 4044 // Create child agents in neighbouring regions