diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | 19 |
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 | ||