diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index 4d2379b..68bb3b5 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | |||
@@ -191,14 +191,24 @@ namespace OpenSim.Region.Environment.Scenes | |||
191 | /// <summary> | 191 | /// <summary> |
192 | /// | 192 | /// |
193 | /// </summary> | 193 | /// </summary> |
194 | public void EnableNeighbourChildAgents(ScenePresence avatar) | 194 | public void EnableNeighbourChildAgents(ScenePresence avatar, List<RegionInfo> lstneighbours) |
195 | { | 195 | { |
196 | List<SimpleRegionInfo> neighbours = | 196 | List<SimpleRegionInfo> neighbours = new List<SimpleRegionInfo>(); |
197 | m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); | 197 | |
198 | //m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); | ||
199 | for (int i = 0; i < lstneighbours.Count; i++) | ||
200 | { | ||
201 | // We don't want to keep sending to regions that consistently fail on comms. | ||
202 | if (!(lstneighbours[i].commFailTF)) | ||
203 | { | ||
204 | neighbours.Add(new SimpleRegionInfo(lstneighbours[i])); | ||
205 | } | ||
206 | } | ||
198 | if (neighbours != null) | 207 | if (neighbours != null) |
199 | { | 208 | { |
200 | for (int i = 0; i < neighbours.Count; i++) | 209 | for (int i = 0; i < neighbours.Count; i++) |
201 | { | 210 | { |
211 | |||
202 | AgentCircuitData agent = avatar.ControllingClient.RequestClientInfo(); | 212 | AgentCircuitData agent = avatar.ControllingClient.RequestClientInfo(); |
203 | agent.BaseFolder = LLUUID.Zero; | 213 | agent.BaseFolder = LLUUID.Zero; |
204 | agent.InventoryFolder = LLUUID.Zero; | 214 | agent.InventoryFolder = LLUUID.Zero; |
@@ -212,7 +222,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
212 | } | 222 | } |
213 | } | 223 | } |
214 | } | 224 | } |
215 | public void InformNeighborChildAgent(ScenePresence avatar, RegionInfo region) | 225 | public void InformNeighborChildAgent(ScenePresence avatar, RegionInfo region, List<RegionInfo> neighbours) |
216 | { | 226 | { |
217 | AgentCircuitData agent = avatar.ControllingClient.RequestClientInfo(); | 227 | AgentCircuitData agent = avatar.ControllingClient.RequestClientInfo(); |
218 | agent.BaseFolder = LLUUID.Zero; | 228 | agent.BaseFolder = LLUUID.Zero; |
@@ -257,7 +267,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
257 | 267 | ||
258 | 268 | ||
259 | List<SimpleRegionInfo> neighbours = new List<SimpleRegionInfo>(); | 269 | List<SimpleRegionInfo> neighbours = new List<SimpleRegionInfo>(); |
260 | 270 | // This stays uncached because we don't already know about our neighbors at this point. | |
261 | neighbours = m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); | 271 | neighbours = m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); |
262 | if (neighbours != null) | 272 | if (neighbours != null) |
263 | { | 273 | { |