diff options
author | Melanie Thielker | 2008-11-29 13:49:20 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-11-29 13:49:20 +0000 |
commit | b8e8a33d60b98894671a34a19e8d982463fa4785 (patch) | |
tree | b6bb8e0a719b24664d391dd76c3add2c5d2f6666 /OpenSim/Region/Environment/Scenes/Hypergrid | |
parent | Finally make attachments stay put. Randomize local ID generation to (diff) | |
download | opensim-SC_OLD-b8e8a33d60b98894671a34a19e8d982463fa4785.zip opensim-SC_OLD-b8e8a33d60b98894671a34a19e8d982463fa4785.tar.gz opensim-SC_OLD-b8e8a33d60b98894671a34a19e8d982463fa4785.tar.bz2 opensim-SC_OLD-b8e8a33d60b98894671a34a19e8d982463fa4785.tar.xz |
Mantis #2584
Applying a patch from Diva. This patch introduces significant improvements
in teleporting. Thank you, Diva.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Hypergrid')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs index 9dd2426..5d34773 100644 --- a/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs | |||
@@ -149,6 +149,7 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
149 | 149 | ||
150 | if (destRegionUp) | 150 | if (destRegionUp) |
151 | { | 151 | { |
152 | |||
152 | // Fixing a bug where teleporting while sitting results in the avatar ending up removed from | 153 | // Fixing a bug where teleporting while sitting results in the avatar ending up removed from |
153 | // both regions | 154 | // both regions |
154 | if (avatar.ParentID != (uint)0) | 155 | if (avatar.ParentID != (uint)0) |
@@ -169,6 +170,17 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
169 | agent.child = false; | 170 | agent.child = false; |
170 | m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agent); | 171 | m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agent); |
171 | 172 | ||
173 | if (eq != null) | ||
174 | { | ||
175 | OSD Item = EventQueueHelper.EnableSimulator(realHandle, reg.ExternalEndPoint); | ||
176 | eq.Enqueue(Item, avatar.UUID); | ||
177 | } | ||
178 | else | ||
179 | { | ||
180 | avatar.ControllingClient.InformClientOfNeighbour(realHandle, reg.ExternalEndPoint); | ||
181 | // TODO: make Event Queue disablable! | ||
182 | } | ||
183 | |||
172 | m_commsProvider.InterRegion.ExpectAvatarCrossing(reg.RegionHandle, avatar.ControllingClient.AgentId, | 184 | m_commsProvider.InterRegion.ExpectAvatarCrossing(reg.RegionHandle, avatar.ControllingClient.AgentId, |
173 | position, false); | 185 | position, false); |
174 | Thread.Sleep(2000); | 186 | Thread.Sleep(2000); |
@@ -223,6 +235,12 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
223 | { | 235 | { |
224 | //SendCloseChildAgentConnections(avatar.UUID, avatar.GetKnownRegionList()); | 236 | //SendCloseChildAgentConnections(avatar.UUID, avatar.GetKnownRegionList()); |
225 | SendCloseChildAgentConnections(avatar.UUID, childRegions); | 237 | SendCloseChildAgentConnections(avatar.UUID, childRegions); |
238 | if (eq != null) | ||
239 | { | ||
240 | OSD Item = EventQueueHelper.DisableSimulator(m_regionInfo.RegionHandle); | ||
241 | eq.Enqueue(Item, avatar.UUID); | ||
242 | } | ||
243 | Thread.Sleep(2000); | ||
226 | CloseConnection(avatar.UUID); | 244 | CloseConnection(avatar.UUID); |
227 | } | 245 | } |
228 | // if (teleport success) // seems to be always success here | 246 | // if (teleport success) // seems to be always success here |