diff options
Very Preliminary teleporting between regions added.
Diffstat (limited to 'OpenSim/OpenSim.Region')
-rw-r--r-- | OpenSim/OpenSim.Region/Scenes/Scene.cs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/OpenSim/OpenSim.Region/Scenes/Scene.cs b/OpenSim/OpenSim.Region/Scenes/Scene.cs index 63a6e37..91f07c3 100644 --- a/OpenSim/OpenSim.Region/Scenes/Scene.cs +++ b/OpenSim/OpenSim.Region/Scenes/Scene.cs | |||
@@ -807,7 +807,20 @@ namespace OpenSim.Region.Scenes | |||
807 | } | 807 | } |
808 | else | 808 | else |
809 | { | 809 | { |
810 | remoteClient.SendTeleportCancel(); | 810 | RegionInfo reg = this.RequestNeighbouringRegionInfo(regionHandle); |
811 | if (reg != null) | ||
812 | { | ||
813 | remoteClient.SendTeleportLocationStart(); | ||
814 | AgentCircuitData agent = remoteClient.RequestClientInfo(); | ||
815 | agent.BaseFolder = LLUUID.Zero; | ||
816 | agent.InventoryFolder = LLUUID.Zero; | ||
817 | agent.startpos = new LLVector3(128, 128, 70); | ||
818 | agent.child = true; | ||
819 | this.commsManager.InterRegion.InformNeighbourOfChildAgent(regionHandle, agent); | ||
820 | this.commsManager.InterRegion.ExpectAvatarCrossing(regionHandle, remoteClient.AgentId, position); | ||
821 | remoteClient.SendRegionTeleport(regionHandle, 13, reg.IPListenAddr, (ushort)reg.IPListenPort, 4, (1 << 4)); | ||
822 | } | ||
823 | //remoteClient.SendTeleportCancel(); | ||
811 | } | 824 | } |
812 | } | 825 | } |
813 | 826 | ||