diff options
Fix for attachment crossing on TPs. Now that we're letting the viewer have control over MakeRoot at the destination, we need to pass the attachments after that. Attachment crossing requires a root agent at the destination.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Hypergrid')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs index 78d5725..f01b2863 100644 --- a/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs | |||
@@ -257,8 +257,6 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
257 | //} | 257 | //} |
258 | 258 | ||
259 | avatar.MakeChildAgent(); | 259 | avatar.MakeChildAgent(); |
260 | // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it | ||
261 | avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true); | ||
262 | 260 | ||
263 | m_log.DebugFormat( | 261 | m_log.DebugFormat( |
264 | "[CAPS]: Sending new CAPS seed url {0} to client {1}", agent.CapsPath, avatar.UUID); | 262 | "[CAPS]: Sending new CAPS seed url {0} to client {1}", agent.CapsPath, avatar.UUID); |
@@ -288,8 +286,16 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
288 | KiPrimitive(avatar.LocalId); | 286 | KiPrimitive(avatar.LocalId); |
289 | } | 287 | } |
290 | 288 | ||
289 | // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which | ||
290 | // trigers a whole shebang of things there, including MakeRoot. So let's wait plenty before | ||
291 | // we send the attachments and close things here. | ||
292 | // It would be nice if the client would tell us when that whole thing is done, so we wouldn't have | ||
293 | // to use this Thread.Sleep voodoo | ||
294 | Thread.Sleep(3000); | ||
295 | |||
296 | // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it | ||
297 | avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true); | ||
291 | 298 | ||
292 | //avatar.Close(); | ||
293 | 299 | ||
294 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone | 300 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone |
295 | /// | 301 | /// |
@@ -297,10 +303,7 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
297 | /// | 303 | /// |
298 | if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY) || isHyperLink) | 304 | if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY) || isHyperLink) |
299 | { | 305 | { |
300 | // FinishTeleport makes the client send CompleteMovementIntoRegion (at the destination), which | 306 | Thread.Sleep(5000); |
301 | // trigers a whole shebang of things there. So let's wait plenty before we disconnect. | ||
302 | // The user is already there anyway. | ||
303 | Thread.Sleep(8000); | ||
304 | avatar.Close(); | 307 | avatar.Close(); |
305 | CloseConnection(avatar.UUID); | 308 | CloseConnection(avatar.UUID); |
306 | } | 309 | } |