aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
authorHomer Horwitz2008-10-04 18:08:35 +0000
committerHomer Horwitz2008-10-04 18:08:35 +0000
commit63d7a92fb4a1a513ae539d9bf42c67fc22abcf90 (patch)
tree443bc4f5eca452163b84d90bef95a7518e0b2b2a /OpenSim/Region/Environment/Scenes
parentCap proxy mesh scale minimum to 0.01 meter for X, Y, and Z terms. (diff)
downloadopensim-SC-63d7a92fb4a1a513ae539d9bf42c67fc22abcf90.zip
opensim-SC-63d7a92fb4a1a513ae539d9bf42c67fc22abcf90.tar.gz
opensim-SC-63d7a92fb4a1a513ae539d9bf42c67fc22abcf90.tar.bz2
opensim-SC-63d7a92fb4a1a513ae539d9bf42c67fc22abcf90.tar.xz
Added immediate TP failure message for TPs to regions that aren't there,
instead of the 130s timeout somewhere. Additionally, mark the map-tile as offline. This partly fixes the TP problems of Mantis 2332; the rest is a viewer problem (just relogin).
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs19
1 files changed, 19 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
index 08793d9..b342cb6 100644
--- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
@@ -736,6 +736,25 @@ namespace OpenSim.Region.Environment.Scenes
736 avatar.ControllingClient.SendTeleportFailed("Remote Region appears to be down"); 736 avatar.ControllingClient.SendTeleportFailed("Remote Region appears to be down");
737 } 737 }
738 } 738 }
739 else
740 {
741 // TP to a place that doesn't exist (anymore)
742 // Inform the viewer about that
743 avatar.ControllingClient.SendTeleportFailed("The region you tried to teleport to doesn't exist anymore");
744
745 // and set the map-tile to '(Offline)'
746 uint regX, regY;
747 Helpers.LongToUInts(regionHandle, out regX, out regY);
748
749 MapBlockData block = new MapBlockData();
750 block.X = (ushort)(regX / Constants.RegionSize);
751 block.Y = (ushort)(regY / Constants.RegionSize);
752 block.Access = 254; // == not there
753
754 List<MapBlockData> blocks = new List<MapBlockData>();
755 blocks.Add(block);
756 avatar.ControllingClient.SendMapBlock(blocks, 0);
757 }
739 } 758 }
740 } 759 }
741 760