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.mb-throttle-test
parent
b9f870fa73
commit
67e56872f3
|
@ -1891,10 +1891,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (IsAttachment)
|
if (IsAttachment)
|
||||||
{
|
{
|
||||||
ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
|
ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
|
||||||
|
|
||||||
if (avatar != null)
|
if (avatar != null)
|
||||||
{
|
|
||||||
avatar.MoveToTarget(target, false, false);
|
avatar.MoveToTarget(target, false, false);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1911,10 +1910,25 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public void stopMoveToTarget()
|
public void stopMoveToTarget()
|
||||||
{
|
{
|
||||||
PhysicsActor pa = RootPart.PhysActor;
|
if (IsAttachment)
|
||||||
|
{
|
||||||
|
ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
|
||||||
|
|
||||||
if (pa != null)
|
if (avatar != null)
|
||||||
pa.PIDActive = false;
|
avatar.ResetMoveToTarget();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PhysicsActor pa = RootPart.PhysActor;
|
||||||
|
|
||||||
|
if (pa != null)
|
||||||
|
{
|
||||||
|
pa.PIDActive = false;
|
||||||
|
|
||||||
|
ScheduleGroupForTerseUpdate();
|
||||||
|
//ParentGroup.ScheduleGroupForFullUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue