aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs17
1 files changed, 10 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index bb65322..941765d 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1994,9 +1994,11 @@ namespace OpenSim.Region.Framework.Scenes
1994 } 1994 }
1995 } 1995 }
1996 part.TaskInventory.LockItemsForRead(false); 1996 part.TaskInventory.LockItemsForRead(false);
1997
1997 // Reset sit target. 1998 // Reset sit target.
1998 if (part.GetAvatarOnSitTarget() == UUID) 1999 if (part.SitTargetAvatar == UUID)
1999 part.SitTargetAvatar = UUID.Zero; 2000 part.SitTargetAvatar = UUID.Zero;
2001
2000 part.ParentGroup.TriggerScriptChangedEvent(Changed.LINK); 2002 part.ParentGroup.TriggerScriptChangedEvent(Changed.LINK);
2001 2003
2002 ParentPosition = part.GetWorldPosition(); 2004 ParentPosition = part.GetWorldPosition();
@@ -2083,10 +2085,12 @@ namespace OpenSim.Region.Framework.Scenes
2083 // Is a sit target available? 2085 // Is a sit target available?
2084 Vector3 avSitOffSet = part.SitTargetPosition; 2086 Vector3 avSitOffSet = part.SitTargetPosition;
2085 Quaternion avSitOrientation = part.SitTargetOrientation; 2087 Quaternion avSitOrientation = part.SitTargetOrientation;
2086 UUID avOnTargetAlready = part.GetAvatarOnSitTarget(); 2088 UUID avOnTargetAlready = part.SitTargetAvatar;
2087 bool SitTargetOccupied = (avOnTargetAlready != UUID.Zero); 2089
2090 bool SitTargetUnOccupied = (!(avOnTargetAlready != UUID.Zero));
2088 bool SitTargetisSet = (Vector3.Zero != avSitOffSet); //NB Latest SL Spec shows Sit Rotation setting is ignored. 2091 bool SitTargetisSet = (Vector3.Zero != avSitOffSet); //NB Latest SL Spec shows Sit Rotation setting is ignored.
2089 if (SitTargetisSet && !SitTargetOccupied) 2092
2093 if (SitTargetisSet && SitTargetUnOccupied)
2090 { 2094 {
2091 //switch the target to this prim 2095 //switch the target to this prim
2092 return part; 2096 return part;
@@ -2525,8 +2529,7 @@ namespace OpenSim.Region.Framework.Scenes
2525 { 2529 {
2526 if (part != null) 2530 if (part != null)
2527 { 2531 {
2528//Console.WriteLine("Link #{0}, Rot {1}", part.LinkNum, part.GetWorldRotation()); 2532 if (part.SitTargetAvatar == UUID)
2529 if (part.GetAvatarOnSitTarget() == UUID)
2530 { 2533 {
2531//Console.WriteLine("Scripted Sit"); 2534//Console.WriteLine("Scripted Sit");
2532 // Scripted sit 2535 // Scripted sit
@@ -2607,7 +2610,7 @@ namespace OpenSim.Region.Framework.Scenes
2607 m_parentID = m_requestedSitTargetID; 2610 m_parentID = m_requestedSitTargetID;
2608 } 2611 }
2609 2612
2610 if (part.GetAvatarOnSitTarget() != UUID) 2613 if (part.SitTargetAvatar != UUID)
2611 { 2614 {
2612 m_offsetRotation = m_offsetRotation / part.RotationOffset; 2615 m_offsetRotation = m_offsetRotation / part.RotationOffset;
2613 } 2616 }