From 6485377ecd8ece0e1a998e03d5f38db9bf6890a8 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 5 Apr 2019 04:21:40 +0100 Subject: [PATCH] fix MinRegionViewDistance option (added in last commit); change regions view control --- OpenSim/Region/Framework/Scenes/Scene.cs | 2 +- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 351592da17..2fa92b3394 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -926,7 +926,7 @@ namespace OpenSim.Region.Framework.Scenes m_defaultDrawDistance = startupConfig.GetFloat("DefaultDrawDistance", m_defaultDrawDistance); m_maxDrawDistance = startupConfig.GetFloat("MaxDrawDistance", m_maxDrawDistance); m_maxRegionViewDistance = startupConfig.GetFloat("MaxRegionsViewDistance", m_maxRegionViewDistance); - m_minRegionViewDistance = startupConfig.GetFloat("MinRegionsViewDistance", m_maxRegionViewDistance); + m_minRegionViewDistance = startupConfig.GetFloat("MinRegionsViewDistance", m_minRegionViewDistance); // old versions compatibility LegacySitOffsets = startupConfig.GetBoolean("LegacySitOffsets", LegacySitOffsets); diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 60a9c3a398..200036c527 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -342,6 +342,7 @@ namespace OpenSim.Region.Framework.Scenes private int m_lastChildUpdatesTime; private int m_lastChildAgentUpdateGodLevel; private float m_lastChildAgentUpdateDrawDistance; + private float m_lastRegionsDrawDistance; private Vector3 m_lastChildAgentUpdatePosition; private Vector3 m_lastChildAgentCheckPosition; // private Vector3 m_lastChildAgentUpdateCamPosition; @@ -2325,6 +2326,7 @@ namespace OpenSim.Region.Framework.Scenes m_lastChildAgentUpdatePosition = AbsolutePosition; m_lastChildAgentCheckPosition = m_lastChildAgentUpdatePosition; m_lastChildAgentUpdateDrawDistance = DrawDistance; + m_lastRegionsDrawDistance = RegionViewDistance; m_lastChildAgentUpdateGodLevel = GodController.ViwerUIGodLevel; m_childUpdatesBusy = false; // allow them @@ -4138,6 +4140,7 @@ namespace OpenSim.Region.Framework.Scenes m_lastChildAgentUpdatePosition = AbsolutePosition; m_lastChildAgentCheckPosition = m_lastChildAgentUpdatePosition; m_lastChildAgentUpdateDrawDistance = DrawDistance; + m_lastRegionsDrawDistance = RegionViewDistance; m_lastChildAgentUpdateGodLevel = GodController.ViwerUIGodLevel; m_childUpdatesBusy = false; // allow them @@ -4422,7 +4425,7 @@ namespace OpenSim.Region.Framework.Scenes if (tdiff < CHILDUPDATES_TIME) return; - bool viewchanged = Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f; + bool viewchanged = Math.Abs(RegionViewDistance - m_lastRegionsDrawDistance) > 32.0f; IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface(); float dx = pos.X - m_lastChildAgentCheckPosition.X; @@ -4434,6 +4437,7 @@ namespace OpenSim.Region.Framework.Scenes m_lastChildAgentUpdatePosition = pos; m_lastChildAgentUpdateGodLevel = GodController.ViwerUIGodLevel; m_lastChildAgentUpdateDrawDistance = DrawDistance; + m_lastRegionsDrawDistance = RegionViewDistance; // m_lastChildAgentUpdateCamPosition = CameraPosition; Util.FireAndForget( @@ -4454,7 +4458,7 @@ namespace OpenSim.Region.Framework.Scenes if (m_lastChildAgentUpdateGodLevel != GodController.ViwerUIGodLevel) doUpdate = true; - if (!viewchanged) + if (Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f) doUpdate = true; if(!doUpdate)