diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index f45692c78e..9834fd48f2 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -1220,6 +1220,9 @@ namespace OpenSim.Region.Framework.Scenes } } + /// + /// ID of the avatar that is sat on us. If there is no such avatar then is UUID.Zero + /// public UUID SitTargetAvatar { get { return m_sitTargetAvatar; } @@ -1886,11 +1889,6 @@ namespace OpenSim.Region.Framework.Scenes return part; } - public UUID GetAvatarOnSitTarget() - { - return m_sitTargetAvatar; - } - public bool GetDieAtEdge() { if (m_parentGroup.IsDeleted) diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 7d433cc117..35b7be82a7 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -1834,11 +1834,12 @@ namespace OpenSim.Region.Framework.Scenes 4); // PERMISSION_TAKE_CONTROLS } } - } + // Reset sit target. - if (part.GetAvatarOnSitTarget() == UUID) + if (part.SitTargetAvatar == UUID) part.SitTargetAvatar = UUID.Zero; + part.ParentGroup.TriggerScriptChangedEvent(Changed.LINK); m_parentPosition = part.GetWorldPosition(); @@ -1887,7 +1888,7 @@ namespace OpenSim.Region.Framework.Scenes // Is a sit target available? Vector3 avSitOffSet = part.SitTargetPosition; Quaternion avSitOrientation = part.SitTargetOrientation; - UUID avOnTargetAlready = part.GetAvatarOnSitTarget(); + UUID avOnTargetAlready = part.SitTargetAvatar; bool SitTargetUnOccupied = (!(avOnTargetAlready != UUID.Zero)); bool SitTargetisSet = @@ -1924,7 +1925,7 @@ namespace OpenSim.Region.Framework.Scenes // Is a sit target available? Vector3 avSitOffSet = part.SitTargetPosition; Quaternion avSitOrientation = part.SitTargetOrientation; - UUID avOnTargetAlready = part.GetAvatarOnSitTarget(); + UUID avOnTargetAlready = part.SitTargetAvatar; bool SitTargetUnOccupied = (!(avOnTargetAlready != UUID.Zero)); bool SitTargetisSet = @@ -2252,7 +2253,7 @@ namespace OpenSim.Region.Framework.Scenes { if (part != null) { - if (part.GetAvatarOnSitTarget() == UUID) + if (part.SitTargetAvatar == UUID) { Vector3 sitTargetPos = part.SitTargetPosition; Quaternion sitTargetOrient = part.SitTargetOrientation; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index c4f64c89e4..85a2db20e5 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -6347,7 +6347,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_String llAvatarOnSitTarget() { m_host.AddScriptLPS(1); - return m_host.GetAvatarOnSitTarget().ToString(); + return m_host.SitTargetAvatar.ToString(); } // http://wiki.secondlife.com/wiki/LlAvatarOnLinkSitTarget