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 | |
parent | Plumb in the birthdate from the user server reply to the cache (diff) | |
download | opensim-SC_OLD-06f74e4295061f789c084dca95209fc84dfd8cb4.zip opensim-SC_OLD-06f74e4295061f789c084dca95209fc84dfd8cb4.tar.gz opensim-SC_OLD-06f74e4295061f789c084dca95209fc84dfd8cb4.tar.bz2 opensim-SC_OLD-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.
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | 14 |
2 files changed, 18 insertions, 13 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 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index 98ea879..3a16b91 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | |||
@@ -853,8 +853,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
853 | //} | 853 | //} |
854 | 854 | ||
855 | avatar.MakeChildAgent(); | 855 | avatar.MakeChildAgent(); |
856 | // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it | ||
857 | avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true); | ||
858 | 856 | ||
859 | m_log.DebugFormat( | 857 | m_log.DebugFormat( |
860 | "[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, avatar.UUID); | 858 | "[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, avatar.UUID); |
@@ -877,15 +875,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
877 | KiPrimitive(avatar.LocalId); | 875 | KiPrimitive(avatar.LocalId); |
878 | } | 876 | } |
879 | 877 | ||
878 | // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which | ||
879 | // trigers a whole shebang of things there, including MakeRoot. So let's wait plenty before | ||
880 | // we send the attachments and close things here. | ||
881 | Thread.Sleep(3000); | ||
882 | |||
883 | // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it | ||
884 | avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true); | ||
880 | 885 | ||
881 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone | 886 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone |
882 | 887 | ||
883 | if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY)) | 888 | if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY)) |
884 | { | 889 | { |
885 | // FinishTeleport makes the client send CompleteMovementIntoRegion (at the destination), which | 890 | Thread.Sleep(5000); |
886 | // trigers a whole shebang of things there. So let's wait plenty before we disconnect. | ||
887 | // The user is already there anyway. | ||
888 | Thread.Sleep(8000); | ||
889 | avatar.Close(); | 891 | avatar.Close(); |
890 | CloseConnection(avatar.UUID); | 892 | CloseConnection(avatar.UUID); |
891 | } | 893 | } |