diff options
author | UbitUmarov | 2019-04-04 20:16:23 +0100 |
---|---|---|
committer | UbitUmarov | 2019-04-04 20:16:23 +0100 |
commit | 50c810549c5faf87017c189326732ba8899a58d0 (patch) | |
tree | 01e44c6632e99a0d760b4a685c5bb892b9e44479 /OpenSim | |
parent | control visible regions by avatar position and view range, first dirty code (diff) | |
download | opensim-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.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 7 |
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 | ||