From abddb60b8d0aba7b68e2494957aedfec66a772cc Mon Sep 17 00:00:00 2001 From: "Teravus Ovares (Dan Olivares)" Date: Wed, 25 Nov 2009 02:51:11 -0500 Subject: [PATCH] * Attempt number 1 to stop the repeating crouch animation that sometimes happens. * This tries to address it by correcting one potential bug where it never resets the falltimer. * This tries to address it by telling Physics that we're not flying this step.. instead of waiting until the next step when the next agent update comes along. --- .../Framework/Scenes/Animation/ScenePresenceAnimator.cs | 6 ++++++ OpenSim/Region/Framework/Scenes/ScenePresence.cs | 3 +++ 2 files changed, 9 insertions(+) diff --git a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs index 2e4c260093..da1104a5ba 100644 --- a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs +++ b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs @@ -200,7 +200,10 @@ namespace OpenSim.Region.Framework.Scenes.Animation else if (move.Z < 0f) { if (actor != null && actor.IsColliding) + { + //Console.WriteLine("LAND"); return "LAND"; + } else return "HOVER_DOWN"; } @@ -249,7 +252,10 @@ namespace OpenSim.Region.Framework.Scenes.Animation float landElapsed = (float)(Environment.TickCount - m_animTickFall) / 1000f; if (landElapsed <= FALL_DELAY) + { + m_animTickFall = 0; return "LAND"; + } } m_animTickFall = 0; diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 5604e3d3f0..33717b1a24 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -1445,7 +1445,10 @@ namespace OpenSim.Region.Framework.Scenes // nesting this check because LengthSquared() is expensive and we don't // want to do it every step when flying. if ((Velocity.LengthSquared() <= LAND_VELOCITYMAG_MAX)) + { StopFlying(); + m_physicsActor.Flying = false; + } } }