aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
authorTeravus Ovares2008-05-13 06:05:45 +0000
committerTeravus Ovares2008-05-13 06:05:45 +0000
commitbfce23dcf4f902d6967bc483433eae3d2077c447 (patch)
treeed54edbb286ab44340bba304bfa20c3a69982460 /OpenSim/Region/Environment/Scenes/ScenePresence.cs
parent* Fixed directory not found when saving Mesh previews (my bad, I was testing) (diff)
downloadopensim-SC-bfce23dcf4f902d6967bc483433eae3d2077c447.zip
opensim-SC-bfce23dcf4f902d6967bc483433eae3d2077c447.tar.gz
opensim-SC-bfce23dcf4f902d6967bc483433eae3d2077c447.tar.bz2
opensim-SC-bfce23dcf4f902d6967bc483433eae3d2077c447.tar.xz
* Implemented ChildAgentDataUpdate throttle multiplier based on an inaccurate count of neighbors.
* The neighbor count is always lower then the actual number of neighbors unless your region was up the longest. * The region you're in is un-affected by this, though, you'll get less packet loss, maybe not get logged off immediately when you log in, and possibly see more prim if your internet connection is semi-unreliable.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs19
1 files changed, 18 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 5b10bfc..3189b10 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -1568,7 +1568,24 @@ namespace OpenSim.Region.Environment.Scenes
1568 cadu.GroupAccess = 0; 1568 cadu.GroupAccess = 0;
1569 cadu.Position = new sLLVector3(AbsolutePosition); 1569 cadu.Position = new sLLVector3(AbsolutePosition);
1570 cadu.regionHandle = m_scene.RegionInfo.RegionHandle; 1570 cadu.regionHandle = m_scene.RegionInfo.RegionHandle;
1571 cadu.throttles = ControllingClient.GetThrottlesPacked(1f); 1571 float multiplier = 1;
1572 int innacurateNeighbors = m_scene.GetInaccurateNeighborCount();
1573 if (innacurateNeighbors != 0)
1574 {
1575 multiplier = 1f / (float)innacurateNeighbors;
1576 }
1577 if (multiplier <= 0f)
1578 {
1579 multiplier = 0.25f;
1580 }
1581
1582 //m_log.Info("[NeighborThrottle]: " + m_scene.GetInaccurateNeighborCount().ToString() + " - m: " + multiplier.ToString());
1583 cadu.throttles = ControllingClient.GetThrottlesPacked(multiplier);
1584
1585
1586
1587
1588
1572 cadu.Velocity = new sLLVector3(Velocity); 1589 cadu.Velocity = new sLLVector3(Velocity);
1573 m_scene.SendOutChildAgentUpdates(cadu,this); 1590 m_scene.SendOutChildAgentUpdates(cadu,this);
1574 m_LastChildAgentUpdatePosition.X = AbsolutePosition.X; 1591 m_LastChildAgentUpdatePosition.X = AbsolutePosition.X;