From b56e2c65b88953ecb29c99d8fec8145a940f0c92 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Thu, 3 Nov 2016 22:15:40 +1000 Subject: No, we don't need to enshrine viewer bugs in the server, we need to fix the viewer, which is half done. Less to delete this time. --- .../EntityTransfer/EntityTransferModule.cs | 45 ---------------- OpenSim/Services/GridService/HypergridLinker.cs | 61 ---------------------- 2 files changed, 106 deletions(-) diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index a2417c4..1b4b5e6 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs @@ -54,15 +54,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly string LogHeader = "[ENTITY TRANSFER MODULE]"; - public const int DefaultMaxTransferDistance = 4095; public const bool WaitForAgentArrivedAtDestinationDefault = true; /// - /// The maximum distance, in standard region units (256m) that an agent is allowed to transfer. - /// - public int MaxTransferDistance { get; set; } - - /// /// If true then on a teleport, the source region waits for a callback from the destination region. If /// a callback fails to arrive within a set time then the user is pulled back into the source region. /// @@ -220,12 +214,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer WaitForAgentArrivedAtDestination = transferConfig.GetBoolean("wait_for_callback", WaitForAgentArrivedAtDestinationDefault); - - MaxTransferDistance = transferConfig.GetInt("max_distance", DefaultMaxTransferDistance); - } - else - { - MaxTransferDistance = DefaultMaxTransferDistance; } m_entityTransferStateMachine = new EntityTransferStateMachine(this); @@ -601,28 +589,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer return true; } - /// - /// Determines whether this instance is within the max transfer distance. - /// - /// - /// - /// - /// true if this instance is within max transfer distance; otherwise, false. - /// - private bool IsWithinMaxTeleportDistance(RegionInfo sourceRegion, GridRegion destRegion) - { - if(MaxTransferDistance == 0) - return true; - -// m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Source co-ords are x={0} y={1}", curRegionX, curRegionY); -// -// m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Final dest is x={0} y={1} {2}@{3}", -// destRegionX, destRegionY, finalDestination.RegionID, finalDestination.ServerURI); - - // Insanely, RegionLoc on RegionInfo is the 256m map co-ord whilst GridRegion.RegionLoc is the raw meters position. - return Math.Abs(sourceRegion.RegionLocX - destRegion.RegionCoordX) <= MaxTransferDistance - && Math.Abs(sourceRegion.RegionLocY - destRegion.RegionCoordY) <= MaxTransferDistance; - } /// /// Wraps DoTeleportInternal() and manages the transfer state. @@ -684,17 +650,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer RegionInfo sourceRegion = sp.Scene.RegionInfo; - if (!IsWithinMaxTeleportDistance(sourceRegion, finalDestination)) - { - sp.ControllingClient.SendTeleportFailed( - string.Format( - "Can't teleport to {0} ({1},{2}) from {3} ({4},{5}), destination is more than {6} regions way", - finalDestination.RegionName, finalDestination.RegionCoordX, finalDestination.RegionCoordY, - sourceRegion.RegionName, sourceRegion.RegionLocX, sourceRegion.RegionLocY, - MaxTransferDistance)); - - return; - } uint newRegionX, newRegionY, oldRegionX, oldRegionY; Util.RegionHandleToRegionLoc(reg.RegionHandle, out newRegionX, out newRegionY); diff --git a/OpenSim/Services/GridService/HypergridLinker.cs b/OpenSim/Services/GridService/HypergridLinker.cs index 9d016fc..5aaba13 100644 --- a/OpenSim/Services/GridService/HypergridLinker.cs +++ b/OpenSim/Services/GridService/HypergridLinker.cs @@ -63,7 +63,6 @@ namespace OpenSim.Services.GridService protected GatekeeperServiceConnector m_GatekeeperConnector; protected UUID m_ScopeID = UUID.Zero; -// protected bool m_Check4096 = true; protected string m_MapTileDirectory = string.Empty; protected string m_ThisGatekeeper = string.Empty; protected Uri m_ThisGatekeeperURI = null; @@ -120,7 +119,6 @@ namespace OpenSim.Services.GridService if (scope != string.Empty) UUID.TryParse(scope, out m_ScopeID); -// m_Check4096 = gridConfig.GetBoolean("Check4096", true); m_MapTileDirectory = gridConfig.GetString("MapTileDirectory", "maptiles"); @@ -385,19 +383,6 @@ namespace OpenSim.Services.GridService return true; } - // We are now performing this check for each individual teleport in the EntityTransferModule instead. This - // allows us to give better feedback when teleports fail because of the distance reason (which can't be - // done here) and it also hypergrid teleports that are within range (possibly because the source grid - // itself has regions that are very far apart). -// uint x, y; -// if (m_Check4096 && !Check4096(handle, out x, out y)) -// { -// //RemoveHyperlinkRegion(regInfo.RegionID); -// reason = "Region is too far (" + x + ", " + y + ")"; -// m_log.Info("[HYPERGRID LINKER]: Unable to link, region is too far (" + x + ", " + y + ")"); -// //return false; -// } - regInfo.RegionID = regionID; if (externalName == string.Empty) @@ -448,52 +433,6 @@ namespace OpenSim.Services.GridService } } -// Not currently used -// /// -// /// Cope with this viewer limitation. -// /// -// /// -// /// -// public bool Check4096(ulong realHandle, out uint x, out uint y) -// { -// uint ux = 0, uy = 0; -// Utils.LongToUInts(realHandle, out ux, out uy); -// x = Util.WorldToRegionLoc(ux); -// y = Util.WorldToRegionLoc(uy); -// -// const uint limit = Util.RegionToWorldLoc(4096 - 1); -// uint xmin = ux - limit; -// uint xmax = ux + limit; -// uint ymin = uy - limit; -// uint ymax = uy + limit; -// // World map boundary checks -// if (xmin < 0 || xmin > ux) -// xmin = 0; -// if (xmax > int.MaxValue || xmax < ux) -// xmax = int.MaxValue; -// if (ymin < 0 || ymin > uy) -// ymin = 0; -// if (ymax > int.MaxValue || ymax < uy) -// ymax = int.MaxValue; -// -// // Check for any regions that are within the possible teleport range to the linked region -// List regions = m_GridService.GetRegionRange(m_ScopeID, (int)xmin, (int)xmax, (int)ymin, (int)ymax); -// if (regions.Count == 0) -// { -// return false; -// } -// else -// { -// // Check for regions which are not linked regions -// List hyperlinks = m_GridService.GetHyperlinks(m_ScopeID); -// IEnumerable availableRegions = regions.Except(hyperlinks); -// if (availableRegions.Count() == 0) -// return false; -// } -// -// return true; -// } - private void AddHyperlinkRegion(GridRegion regionInfo, ulong regionHandle) { RegionData rdata = m_GridService.RegionInfo2RegionData(regionInfo); -- cgit v1.1