aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs11
1 files changed, 5 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 21311b0..423fbc7 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -567,7 +567,7 @@ namespace OpenSim.Region.Framework.Scenes
567 567
568 if (RootPart.GetStatusSandbox()) 568 if (RootPart.GetStatusSandbox())
569 { 569 {
570 if (Util.GetDistanceTo(RootPart.StatusSandboxPos, value) > 10) 570 if (Vector3.DistanceSquared(RootPart.StatusSandboxPos, value) > 100)
571 { 571 {
572 RootPart.ScriptSetPhysicsStatus(false); 572 RootPart.ScriptSetPhysicsStatus(false);
573 573
@@ -1994,7 +1994,6 @@ namespace OpenSim.Region.Framework.Scenes
1994 public void SaveScriptedState(XmlTextWriter writer, bool oldIDs) 1994 public void SaveScriptedState(XmlTextWriter writer, bool oldIDs)
1995 { 1995 {
1996 XmlDocument doc = new XmlDocument(); 1996 XmlDocument doc = new XmlDocument();
1997 doc.XmlResolver=null;
1998 Dictionary<UUID,string> states = new Dictionary<UUID,string>(); 1997 Dictionary<UUID,string> states = new Dictionary<UUID,string>();
1999 1998
2000 SceneObjectPart[] parts = m_parts.GetArray(); 1999 SceneObjectPart[] parts = m_parts.GetArray();
@@ -2783,14 +2782,14 @@ namespace OpenSim.Region.Framework.Scenes
2783 return RootPart.Torque; 2782 return RootPart.Torque;
2784 } 2783 }
2785 2784
2786 // This is used by llMoveToTarget() in an attached object 2785 // This is used by both Double-Click Auto-Pilot and llMoveToTarget() in an attached object
2787 public void MoveToTarget(Vector3 target, float tau) 2786 public void MoveToTarget(Vector3 target, float tau)
2788 { 2787 {
2789 if (IsAttachment) 2788 if (IsAttachment)
2790 { 2789 {
2791 ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar); 2790 ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
2792 2791
2793 if (avatar != null) 2792 if (avatar != null && !avatar.IsSatOnObject)
2794 avatar.MoveToTarget(target, false, false, tau); 2793 avatar.MoveToTarget(target, false, false, tau);
2795 } 2794 }
2796 else 2795 else
@@ -4531,7 +4530,7 @@ namespace OpenSim.Region.Framework.Scenes
4531 4530
4532 if (RootPart.GetStatusSandbox()) 4531 if (RootPart.GetStatusSandbox())
4533 { 4532 {
4534 if (Util.GetDistanceTo(RootPart.StatusSandboxPos, pos) > 10) 4533 if (Vector3.DistanceSquared(RootPart.StatusSandboxPos, pos) > 100)
4535 { 4534 {
4536 RootPart.ScriptSetPhysicsStatus(false); 4535 RootPart.ScriptSetPhysicsStatus(false);
4537 pos = AbsolutePosition; 4536 pos = AbsolutePosition;
@@ -5029,7 +5028,7 @@ namespace OpenSim.Region.Framework.Scenes
5029 foreach (uint idx in m_targets.Keys) 5028 foreach (uint idx in m_targets.Keys)
5030 { 5029 {
5031 scriptPosTarget target = m_targets[idx]; 5030 scriptPosTarget target = m_targets[idx];
5032 if (Util.GetDistanceTo(target.targetPos, m_rootPart.GroupPosition) <= target.tolerance) 5031 if (Vector3.DistanceSquared(target.targetPos, m_rootPart.GroupPosition) <= target.tolerance * target.tolerance)
5033 { 5032 {
5034 at_target = true; 5033 at_target = true;
5035 5034