From 62763cc0fb80caae199ea03d2cb8d031924c111e Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Mon, 14 Jun 2010 00:02:17 +0200 Subject: [PATCH] Report current position instead of position at the time we sat down --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 2 +- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 68681c94a4..91b7d35801 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -4732,7 +4732,7 @@ namespace OpenSim.Region.Framework.Scenes // Update sitting avatar chat position - p.AbsolutePosition = GroupPosition; + p.AbsolutePosition = GroupPosition + OffsetPosition + m_sitTargetPosition; } } } diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index b6f67f7327..7a7816a14e 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -466,6 +466,13 @@ namespace OpenSim.Region.Framework.Scenes if ((actor != null) && (m_parentID == 0)) // KF Do NOT update m_pos here if Av is sitting! m_pos = actor.Position; + // If we're sitting, we need to update our position + if (m_parentID == 0) + { + SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID); + m_parentPosition = part.AbsolutePosition; + } + return m_parentPosition + m_pos; } set