change visible regions also by view range change; fix check on crossings
parent
a56f40470e
commit
50c810549c
|
@ -1785,12 +1785,15 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
|||
cAgent.Position = pos;
|
||||
cAgent.ChildrenCapSeeds = agent.KnownRegions;
|
||||
|
||||
if(ctx.OutboundVersion < 0.7f)
|
||||
{
|
||||
childRegionsToClose = agent.GetChildAgentsToClose(neighbourRegion.RegionHandle, neighbourRegion.RegionSizeX, neighbourRegion.RegionSizeY);
|
||||
if(cAgent.ChildrenCapSeeds != null)
|
||||
{
|
||||
foreach(ulong regh in childRegionsToClose)
|
||||
cAgent.ChildrenCapSeeds.Remove(regh);
|
||||
}
|
||||
}
|
||||
|
||||
if (isFlying)
|
||||
cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY;
|
||||
|
|
|
@ -4415,10 +4415,12 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (tdiff < CHILDUPDATES_TIME)
|
||||
return;
|
||||
|
||||
bool viewchanged = Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f;
|
||||
|
||||
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
|
||||
float dx = pos.X - m_lastChildAgentCheckPosition.Y;
|
||||
float dx = pos.X - m_lastChildAgentCheckPosition.X;
|
||||
float dy = pos.Y - m_lastChildAgentCheckPosition.Y;
|
||||
if ((m_agentTransfer != null) && ((dx * dx + dy *dy) > CHILDAGENTSCHECK_MOVEMENT))
|
||||
if ((m_agentTransfer != null) && (viewchanged || ((dx * dx + dy * dy) > CHILDAGENTSCHECK_MOVEMENT)))
|
||||
{
|
||||
m_childUpdatesBusy = true;
|
||||
m_lastChildAgentCheckPosition = pos;
|
||||
|
@ -4445,7 +4447,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (m_lastChildAgentUpdateGodLevel != GodController.ViwerUIGodLevel)
|
||||
doUpdate = true;
|
||||
|
||||
bool viewchanged = Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f;
|
||||
if (!viewchanged)
|
||||
doUpdate = true;
|
||||
|
||||
|
|
Loading…
Reference in New Issue