diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index fd8c6fc9dd..7e20592fd3 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -2338,10 +2338,17 @@ namespace OpenSim.Region.Framework.Scenes m_agentTransfer.EnableChildAgents(this); } } - // let updates be sent, with some delay - m_lastChildUpdatesTime = Util.EnvironmentTickCount() + 10000; + if(gotCrossUpdate) + { + m_lastChildUpdatesTime = Util.EnvironmentTickCount() + 10000; + m_lastChildAgentUpdateDrawDistance = DrawDistance; + } + else + { + m_lastChildUpdatesTime = 0; + m_lastChildAgentUpdateDrawDistance = -1000; + } m_lastChildAgentUpdateGodLevel = GodController.ViwerUIGodLevel; - m_lastChildAgentUpdateDrawDistance = DrawDistance; m_lastChildAgentUpdatePosition = AbsolutePosition; m_childUpdatesBusy = false; // allow them } @@ -4321,10 +4328,7 @@ namespace OpenSim.Region.Framework.Scenes return; //possible KnownRegionHandles always contains current region and this check is not needed - int minhandles = 0; - if(KnownRegionHandles.Contains(RegionHandle)) - minhandles++; - + int minhandles = KnownRegionHandles.Contains(RegionHandle) ? 1 : 0; if(KnownRegionHandles.Count > minhandles) { int tdiff = Util.EnvironmentTickCountSubtract(m_lastChildUpdatesTime);