aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorJustin Clark-Casey2014-11-19 19:08:33 +0000
committerJustin Clark-Casey2014-11-19 19:08:33 +0000
commit67e56872f3529e5e2b1bf6b6f548bc00fec129e7 (patch)
tree4c3ed489f3d2fa7f63a5bb85d33a8253873897d0 /OpenSim/Region/Framework/Scenes
parentMinor: Update LLLoginService to handle explicitly set login locations that in... (diff)
downloadopensim-SC_OLD-67e56872f3529e5e2b1bf6b6f548bc00fec129e7.zip
opensim-SC_OLD-67e56872f3529e5e2b1bf6b6f548bc00fec129e7.tar.gz
opensim-SC_OLD-67e56872f3529e5e2b1bf6b6f548bc00fec129e7.tar.bz2
opensim-SC_OLD-67e56872f3529e5e2b1bf6b6f548bc00fec129e7.tar.xz
If llStopMoveToTarget() is called on an attachment, then stop the avatar if it was moving to target.
Same behaviour as on Linden Lab grid. Will probably also address http://opensimulator.org/mantis/view.php?id=7369 by not generating spurious object updates when llStopMoveToTarget() is called in attachments where the avatar is not moving.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs24
1 files changed, 19 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 8535587..167485e 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1891,10 +1891,9 @@ namespace OpenSim.Region.Framework.Scenes
1891 if (IsAttachment) 1891 if (IsAttachment)
1892 { 1892 {
1893 ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar); 1893 ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
1894
1894 if (avatar != null) 1895 if (avatar != null)
1895 {
1896 avatar.MoveToTarget(target, false, false); 1896 avatar.MoveToTarget(target, false, false);
1897 }
1898 } 1897 }
1899 else 1898 else
1900 { 1899 {
@@ -1911,10 +1910,25 @@ namespace OpenSim.Region.Framework.Scenes
1911 1910
1912 public void stopMoveToTarget() 1911 public void stopMoveToTarget()
1913 { 1912 {
1914 PhysicsActor pa = RootPart.PhysActor; 1913 if (IsAttachment)
1914 {
1915 ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
1915 1916
1916 if (pa != null) 1917 if (avatar != null)
1917 pa.PIDActive = false; 1918 avatar.ResetMoveToTarget();
1919 }
1920 else
1921 {
1922 PhysicsActor pa = RootPart.PhysActor;
1923
1924 if (pa != null)
1925 {
1926 pa.PIDActive = false;
1927
1928 ScheduleGroupForTerseUpdate();
1929 //ParentGroup.ScheduleGroupForFullUpdate();
1930 }
1931 }
1918 } 1932 }
1919 1933
1920 /// <summary> 1934 /// <summary>