aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authordiva2008-12-22 17:43:51 +0000
committerdiva2008-12-22 17:43:51 +0000
commit06f74e4295061f789c084dca95209fc84dfd8cb4 (patch)
treec92ec4c434daffcacae6034c8d0d31467d460cf7 /OpenSim/Region/Environment
parentPlumb in the birthdate from the user server reply to the cache (diff)
downloadopensim-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')
-rw-r--r--OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs17
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs14
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 }