From 6b3135aa4dcdcd469054ed0af5eba3b30ae5cd3c Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 4 May 2012 22:24:04 +0100 Subject: [PATCH] UbitODE: leave avatar 'freemove' state (entered on setmomentum) on any significant change like new 'velocity' or new position, etc, requests --- OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs index 326fe97a77..672b9e0175 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs @@ -1184,7 +1184,7 @@ namespace OpenSim.Region.Physics.OdePlugin // destroy avatar capsule and related ODE data AvatarGeomAndBodyDestroy(); } - + m_freemove = false; m_isPhysical = NewStatus; } } @@ -1236,7 +1236,7 @@ namespace OpenSim.Region.Physics.OdePlugin + (Amotor == IntPtr.Zero ? "Amotor " : "")); } } - + m_freemove = false; m_pidControllerActive = true; } else @@ -1250,6 +1250,7 @@ namespace OpenSim.Region.Physics.OdePlugin if (Body != IntPtr.Zero) d.BodySetPosition(Body, newPos.X, newPos.Y, newPos.Z); _position = newPos; + m_freemove = false; m_pidControllerActive = true; } @@ -1260,6 +1261,7 @@ namespace OpenSim.Region.Physics.OdePlugin private void changeVelocity(Vector3 newVel) { m_pidControllerActive = true; + m_freemove = false; _target_velocity = newVel; }