diff options
author | Teravus Ovares | 2008-05-13 06:05:45 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-05-13 06:05:45 +0000 |
commit | bfce23dcf4f902d6967bc483433eae3d2077c447 (patch) | |
tree | ed54edbb286ab44340bba304bfa20c3a69982460 /OpenSim/Region/Environment/Scenes/ScenePresence.cs | |
parent | * Fixed directory not found when saving Mesh previews (my bad, I was testing) (diff) | |
download | opensim-SC_OLD-bfce23dcf4f902d6967bc483433eae3d2077c447.zip opensim-SC_OLD-bfce23dcf4f902d6967bc483433eae3d2077c447.tar.gz opensim-SC_OLD-bfce23dcf4f902d6967bc483433eae3d2077c447.tar.bz2 opensim-SC_OLD-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.cs | 19 |
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; |