diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 01bcd83..587d940 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -269,7 +269,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
269 | { | 269 | { |
270 | // Another region is up. | 270 | // Another region is up. |
271 | // We have to tell all our ScenePresences about it.. | 271 | // We have to tell all our ScenePresences about it.. |
272 | //and add it to the neighbor list. | 272 | // and add it to the neighbor list. |
273 | |||
274 | // We only add it to the neighbor list if it's within 1 region from here. | ||
275 | // Agents may have draw distance values that cross two regions though, so | ||
276 | // we add it to the notify list regardless of distance. | ||
277 | // We'll check the agent's draw distance before notifying them though. | ||
273 | 278 | ||
274 | 279 | ||
275 | if (RegionInfo.RegionHandle != otherRegion.RegionHandle) | 280 | if (RegionInfo.RegionHandle != otherRegion.RegionHandle) |
@@ -297,12 +302,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
297 | { | 302 | { |
298 | m_neighbours.Add(otherRegion); | 303 | m_neighbours.Add(otherRegion); |
299 | } | 304 | } |
300 | |||
301 | if (!(m_regionRestartNotifyList.Contains(otherRegion))) | 305 | if (!(m_regionRestartNotifyList.Contains(otherRegion))) |
302 | { | 306 | { |
303 | m_regionRestartNotifyList.Add(otherRegion); | 307 | m_regionRestartNotifyList.Add(otherRegion); |
304 | 308 | ||
305 | m_restartWaitTimer.Interval= 50000; | 309 | m_restartWaitTimer.Interval = 50000; |
306 | m_restartWaitTimer.AutoReset = false; | 310 | m_restartWaitTimer.AutoReset = false; |
307 | m_restartWaitTimer.Elapsed += new ElapsedEventHandler(RestartNotifyWaitElapsed); | 311 | m_restartWaitTimer.Elapsed += new ElapsedEventHandler(RestartNotifyWaitElapsed); |
308 | m_restartWaitTimer.Start(); | 312 | m_restartWaitTimer.Start(); |
@@ -312,6 +316,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
312 | { | 316 | { |
313 | MainLog.Instance.Verbose("INTERGRID", "Got notice about Region at X:" + otherRegion.RegionLocX.ToString() + " Y:" + otherRegion.RegionLocY.ToString() + " but it was too far away to send to the client"); | 317 | MainLog.Instance.Verbose("INTERGRID", "Got notice about Region at X:" + otherRegion.RegionLocX.ToString() + " Y:" + otherRegion.RegionLocY.ToString() + " but it was too far away to send to the client"); |
314 | } | 318 | } |
319 | |||
320 | |||
321 | |||
315 | 322 | ||
316 | } | 323 | } |
317 | return true; | 324 | return true; |
@@ -1250,7 +1257,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1250 | /// <param name="presence"></param> | 1257 | /// <param name="presence"></param> |
1251 | public void InformClientOfNeighbours(ScenePresence presence) | 1258 | public void InformClientOfNeighbours(ScenePresence presence) |
1252 | { | 1259 | { |
1253 | m_sceneGridService.EnableNeighbourChildAgents(presence); | 1260 | m_sceneGridService.EnableNeighbourChildAgents(presence, m_neighbours); |
1254 | } | 1261 | } |
1255 | 1262 | ||
1256 | /// <summary> | 1263 | /// <summary> |
@@ -1260,7 +1267,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1260 | /// <param name="region"></param> | 1267 | /// <param name="region"></param> |
1261 | public void InformClientOfNeighbor(ScenePresence presence, RegionInfo region) | 1268 | public void InformClientOfNeighbor(ScenePresence presence, RegionInfo region) |
1262 | { | 1269 | { |
1263 | m_sceneGridService.InformNeighborChildAgent(presence, region); | 1270 | m_sceneGridService.InformNeighborChildAgent(presence, region, m_neighbours); |
1264 | } | 1271 | } |
1265 | 1272 | ||
1266 | /// <summary> | 1273 | /// <summary> |