diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index a2ff7c81db..4638035733 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs @@ -1250,6 +1250,18 @@ namespace OpenSim.Region.Physics.OdePlugin internal void ProcessTaints() { + if (m_taintPosition != _position) + { + if (Body != IntPtr.Zero) + { + d.BodySetPosition(Body, m_taintPosition.X, m_taintPosition.Y, m_taintPosition.Z); + + _position.X = m_taintPosition.X; + _position.Y = m_taintPosition.Y; + _position.Z = m_taintPosition.Z; + } + } + if (m_tainted_isPhysical != m_isPhysical) { if (m_tainted_isPhysical) @@ -1309,18 +1321,6 @@ namespace OpenSim.Region.Physics.OdePlugin + (Amotor==IntPtr.Zero ? "Amotor ":"")); } } - - if (!m_taintPosition.ApproxEquals(_position, 0.05f)) - { - if (Body != IntPtr.Zero) - { - d.BodySetPosition(Body, m_taintPosition.X, m_taintPosition.Y, m_taintPosition.Z); - - _position.X = m_taintPosition.X; - _position.Y = m_taintPosition.Y; - _position.Z = m_taintPosition.Z; - } - } } internal void AddCollisionFrameTime(int p)