aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorUbitUmarov2019-04-04 20:16:23 +0100
committerUbitUmarov2019-04-04 20:16:23 +0100
commit50c810549c5faf87017c189326732ba8899a58d0 (patch)
tree01e44c6632e99a0d760b4a685c5bb892b9e44479 /OpenSim
parentcontrol visible regions by avatar position and view range, first dirty code (diff)
downloadopensim-SC-50c810549c5faf87017c189326732ba8899a58d0.zip
opensim-SC-50c810549c5faf87017c189326732ba8899a58d0.tar.gz
opensim-SC-50c810549c5faf87017c189326732ba8899a58d0.tar.bz2
opensim-SC-50c810549c5faf87017c189326732ba8899a58d0.tar.xz
change visible regions also by view range change; fix check on crossings
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs7
2 files changed, 11 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index b4ac968..8668558 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -1785,11 +1785,14 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1785 cAgent.Position = pos; 1785 cAgent.Position = pos;
1786 cAgent.ChildrenCapSeeds = agent.KnownRegions; 1786 cAgent.ChildrenCapSeeds = agent.KnownRegions;
1787 1787
1788 childRegionsToClose = agent.GetChildAgentsToClose(neighbourRegion.RegionHandle, neighbourRegion.RegionSizeX, neighbourRegion.RegionSizeY); 1788 if(ctx.OutboundVersion < 0.7f)
1789 if(cAgent.ChildrenCapSeeds != null)
1790 { 1789 {
1791 foreach(ulong regh in childRegionsToClose) 1790 childRegionsToClose = agent.GetChildAgentsToClose(neighbourRegion.RegionHandle, neighbourRegion.RegionSizeX, neighbourRegion.RegionSizeY);
1792 cAgent.ChildrenCapSeeds.Remove(regh); 1791 if(cAgent.ChildrenCapSeeds != null)
1792 {
1793 foreach(ulong regh in childRegionsToClose)
1794 cAgent.ChildrenCapSeeds.Remove(regh);
1795 }
1793 } 1796 }
1794 1797
1795 if (isFlying) 1798 if (isFlying)
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index fbf9b4a..438ae4c 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -4415,10 +4415,12 @@ namespace OpenSim.Region.Framework.Scenes
4415 if (tdiff < CHILDUPDATES_TIME) 4415 if (tdiff < CHILDUPDATES_TIME)
4416 return; 4416 return;
4417 4417
4418 bool viewchanged = Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f;
4419
4418 IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>(); 4420 IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
4419 float dx = pos.X - m_lastChildAgentCheckPosition.Y; 4421 float dx = pos.X - m_lastChildAgentCheckPosition.X;
4420 float dy = pos.Y - m_lastChildAgentCheckPosition.Y; 4422 float dy = pos.Y - m_lastChildAgentCheckPosition.Y;
4421 if ((m_agentTransfer != null) && ((dx * dx + dy *dy) > CHILDAGENTSCHECK_MOVEMENT)) 4423 if ((m_agentTransfer != null) && (viewchanged || ((dx * dx + dy * dy) > CHILDAGENTSCHECK_MOVEMENT)))
4422 { 4424 {
4423 m_childUpdatesBusy = true; 4425 m_childUpdatesBusy = true;
4424 m_lastChildAgentCheckPosition = pos; 4426 m_lastChildAgentCheckPosition = pos;
@@ -4445,7 +4447,6 @@ namespace OpenSim.Region.Framework.Scenes
4445 if (m_lastChildAgentUpdateGodLevel != GodController.ViwerUIGodLevel) 4447 if (m_lastChildAgentUpdateGodLevel != GodController.ViwerUIGodLevel)
4446 doUpdate = true; 4448 doUpdate = true;
4447 4449
4448 bool viewchanged = Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f;
4449 if (!viewchanged) 4450 if (!viewchanged)
4450 doUpdate = true; 4451 doUpdate = true;
4451 4452