aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs19
1 files changed, 18 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
index 64da9d4..54d4298 100644
--- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
@@ -662,6 +662,7 @@ namespace OpenSim.Region.Environment.Scenes
662 662
663 if (destRegionUp) 663 if (destRegionUp)
664 { 664 {
665
665 // Fixing a bug where teleporting while sitting results in the avatar ending up removed from 666 // Fixing a bug where teleporting while sitting results in the avatar ending up removed from
666 // both regions 667 // both regions
667 if (avatar.ParentID != (uint)0) 668 if (avatar.ParentID != (uint)0)
@@ -681,6 +682,16 @@ namespace OpenSim.Region.Environment.Scenes
681 avatar.Scene.RemoveCapsHandler(avatar.UUID); 682 avatar.Scene.RemoveCapsHandler(avatar.UUID);
682 agent.child = false; 683 agent.child = false;
683 m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agent); 684 m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agent);
685
686 if (eq != null)
687 {
688 OSD Item = EventQueueHelper.EnableSimulator(reg.RegionHandle, reg.ExternalEndPoint);
689 eq.Enqueue(Item, avatar.UUID);
690 }
691 else
692 {
693 avatar.ControllingClient.InformClientOfNeighbour(reg.RegionHandle, reg.ExternalEndPoint);
694 }
684 695
685 m_commsProvider.InterRegion.ExpectAvatarCrossing(reg.RegionHandle, avatar.ControllingClient.AgentId, 696 m_commsProvider.InterRegion.ExpectAvatarCrossing(reg.RegionHandle, avatar.ControllingClient.AgentId,
686 position, false); 697 position, false);
@@ -724,8 +735,14 @@ namespace OpenSim.Region.Environment.Scenes
724 uint oldRegionY = (((uint)(m_regionInfo.RegionHandle)) >> 8); 735 uint oldRegionY = (((uint)(m_regionInfo.RegionHandle)) >> 8);
725 if (Util.fast_distance2d((int)(newRegionX - oldRegionX), (int)(newRegionY - oldRegionY)) > 3) 736 if (Util.fast_distance2d((int)(newRegionX - oldRegionX), (int)(newRegionY - oldRegionY)) > 3)
726 { 737 {
727 SendCloseChildAgentConnections(avatar.UUID,avatar.GetKnownRegionList()); 738 //SendCloseChildAgentConnections(avatar.UUID,avatar.GetKnownRegionList());
728 SendCloseChildAgentConnections(avatar.UUID, childRegions); 739 SendCloseChildAgentConnections(avatar.UUID, childRegions);
740 if (eq != null)
741 {
742 OSD Item = EventQueueHelper.DisableSimulator(m_regionInfo.RegionHandle);
743 eq.Enqueue(Item, avatar.UUID);
744 }
745 Thread.Sleep(2000);
729 CloseConnection(avatar.UUID); 746 CloseConnection(avatar.UUID);
730 } 747 }
731 // if (teleport success) // seems to be always success here 748 // if (teleport success) // seems to be always success here