diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index d770d45..2f2034f 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -1099,7 +1099,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1099 | ulong destinationHandle = finalDestination.RegionHandle; | 1099 | ulong destinationHandle = finalDestination.RegionHandle; |
1100 | 1100 | ||
1101 | List<ulong> childRegionsToClose = null; | 1101 | List<ulong> childRegionsToClose = null; |
1102 | if (ctx.OutboundVersion < 0.7f) | 1102 | // HG needs a deeper change |
1103 | bool localclose = (ctx.OutboundVersion < 0.7f || ((teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0)); | ||
1104 | if (localclose) | ||
1103 | { | 1105 | { |
1104 | childRegionsToClose = sp.GetChildAgentsToClose(destinationHandle, finalDestination.RegionSizeX, finalDestination.RegionSizeY); | 1106 | childRegionsToClose = sp.GetChildAgentsToClose(destinationHandle, finalDestination.RegionSizeX, finalDestination.RegionSizeY); |
1105 | 1107 | ||
@@ -1226,7 +1228,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1226 | // Now let's make it officially a child agent | 1228 | // Now let's make it officially a child agent |
1227 | sp.MakeChildAgent(destinationHandle); | 1229 | sp.MakeChildAgent(destinationHandle); |
1228 | 1230 | ||
1229 | if(ctx.OutboundVersion < 0.7f) | 1231 | if(localclose) |
1230 | { | 1232 | { |
1231 | if (logout) | 1233 | if (logout) |
1232 | sp.closeAllChildAgents(); | 1234 | sp.closeAllChildAgents(); |
@@ -2129,8 +2131,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
2129 | foreach (ulong handler in previousRegionNeighbourHandles) | 2131 | foreach (ulong handler in previousRegionNeighbourHandles) |
2130 | seeds.Remove(handler); | 2132 | seeds.Remove(handler); |
2131 | 2133 | ||
2132 | List<ulong> toclose = new List<ulong>(previousRegionNeighbourHandles); | 2134 | if(notHG) // does not work on HG |
2133 | sp.CloseChildAgents(toclose); | 2135 | { |
2136 | List<ulong> toclose = new List<ulong>(previousRegionNeighbourHandles); | ||
2137 | sp.CloseChildAgents(toclose); | ||
2138 | } | ||
2134 | } | 2139 | } |
2135 | 2140 | ||
2136 | /// Update all child agent with everyone's seeds | 2141 | /// Update all child agent with everyone's seeds |