From 7cd4fa8cf5f51e576aeb866a83649206e37e8483 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 15 Oct 2016 20:26:23 +0100 Subject: bug fix: We can't filter out any of the avatar controls relative to movement, even if not flying (a condition i incorrectly added recently) in fact the entire AgentUpdates throotling is questionable, since its viewer Job. But keeping it... --- OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 2650be4..48cb85e 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -6173,8 +6173,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP // Threshold for body rotation to be a significant agent update // use the abs of cos - private const float QDELTABody = 1.0f - 0.0001f; - private const float QDELTAHead = 1.0f - 0.0001f; + private const float QDELTABody = 1.0f - 0.00005f; + private const float QDELTAHead = 1.0f - 0.00005f; // Threshold for camera rotation to be a significant agent update private const float VDELTA = 0.01f; @@ -6199,8 +6199,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP { if( (x.ControlFlags != m_thisAgentUpdateArgs.ControlFlags) // significant if control flags changed - || ((x.ControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0 && - (x.ControlFlags & 0x3f8dfff) != 0) // we need to rotate the av on fly +// || ((x.ControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0 && +// (x.ControlFlags & 0x3f8dfff) != 0) // we need to rotate the av on fly + || (x.ControlFlags & 0x3f8dfff) != 0 // actually all movement controls need to pass || (x.Flags != m_thisAgentUpdateArgs.Flags) // significant if Flags changed || (x.State != m_thisAgentUpdateArgs.State) // significant if Stats changed || (Math.Abs(x.Far - m_thisAgentUpdateArgs.Far) >= 32) // significant if far distance changed -- cgit v1.1 From 954bcbc5efad2a0cf7bf1784d363816a8987fdbb Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 15 Oct 2016 20:44:18 +0100 Subject: bug fix: let ALL avatar controls have a repeat rate controled by viewer (so as before commit 8a3958ad048535ad4f8a752cbd71d9114e53a42b on this) --- OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 48cb85e..fd3f997 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -6201,7 +6201,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP (x.ControlFlags != m_thisAgentUpdateArgs.ControlFlags) // significant if control flags changed // || ((x.ControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0 && // (x.ControlFlags & 0x3f8dfff) != 0) // we need to rotate the av on fly - || (x.ControlFlags & 0x3f8dfff) != 0 // actually all movement controls need to pass + || x.ControlFlags != (byte)AgentManager.ControlFlags.NONE// actually all movement controls need to pass || (x.Flags != m_thisAgentUpdateArgs.Flags) // significant if Flags changed || (x.State != m_thisAgentUpdateArgs.State) // significant if Stats changed || (Math.Abs(x.Far - m_thisAgentUpdateArgs.Far) >= 32) // significant if far distance changed -- cgit v1.1 From 586e4cf163cd68b47fce0b25ee34a0155d41bf4c Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 17 Oct 2016 19:16:07 +0100 Subject: ignore prims with shape type none on max size check for physics --- OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 53a9441..e643db7 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -3869,15 +3869,11 @@ namespace OpenSim.Region.Framework.Scenes for (int i = 0; i < parts.Length; i++) { SceneObjectPart part = parts[i]; - if (part.Scale.X > m_scene.m_maxPhys || - part.Scale.Y > m_scene.m_maxPhys || - part.Scale.Z > m_scene.m_maxPhys ) - { - UsePhysics = false; // Reset physics - break; - } - if (checkShape && part.PhysicsShapeType != (byte)PhysicsShapeType.None) + if(part.PhysicsShapeType == (byte)PhysicsShapeType.None) + continue; // assuming root type was checked elsewhere + + if (checkShape) { if (--maxprims < 0) { @@ -3885,6 +3881,14 @@ namespace OpenSim.Region.Framework.Scenes break; } } + + if (part.Scale.X > m_scene.m_maxPhys || + part.Scale.Y > m_scene.m_maxPhys || + part.Scale.Z > m_scene.m_maxPhys ) + { + UsePhysics = false; // Reset physics + break; + } } } -- cgit v1.1