diff options
author | diva | 2008-12-22 17:43:51 +0000 |
---|---|---|
committer | diva | 2008-12-22 17:43:51 +0000 |
commit | 06f74e4295061f789c084dca95209fc84dfd8cb4 (patch) | |
tree | c92ec4c434daffcacae6034c8d0d31467d460cf7 /OpenSim/Region/Environment/Scenes/Hypergrid | |
parent | Plumb in the birthdate from the user server reply to the cache (diff) | |
download | opensim-SC-06f74e4295061f789c084dca95209fc84dfd8cb4.zip opensim-SC-06f74e4295061f789c084dca95209fc84dfd8cb4.tar.gz opensim-SC-06f74e4295061f789c084dca95209fc84dfd8cb4.tar.bz2 opensim-SC-06f74e4295061f789c084dca95209fc84dfd8cb4.tar.xz |
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 | } |