diff options
Fix a rather nasty issue where the Backup() process causes objects and avatars sitting on them to be pushed to the corner of the sim.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index b0ce450..77581af 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -718,17 +718,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
718 | 718 | ||
719 | // Tell the physics engines that this prim changed. | 719 | // Tell the physics engines that this prim changed. |
720 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); | 720 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); |
721 | } | 721 | } |
722 | 722 | ||
723 | List<ScenePresence> avs = ParentGroup.GetLinkedAvatars(); | 723 | if (!m_parentGroup.m_dupeInProgress) |
724 | foreach (ScenePresence av in avs) | 724 | { |
725 | { | 725 | List<ScenePresence> avs = ParentGroup.GetLinkedAvatars(); |
726 | if (av.LinkedPrim == m_uuid) | 726 | foreach (ScenePresence av in avs) |
727 | { | 727 | { |
728 | Vector3 offset = (m_offsetPosition - oldpos); | 728 | if (av.LinkedPrim == m_uuid) |
729 | av.OffsetPosition += offset; | 729 | { |
730 | av.SendFullUpdateToAllClients(); | 730 | Vector3 offset = (m_offsetPosition - oldpos); |
731 | } | 731 | av.OffsetPosition += offset; |
732 | av.SendFullUpdateToAllClients(); | ||
733 | } | ||
734 | } | ||
732 | } | 735 | } |
733 | } | 736 | } |
734 | TriggerScriptChangedEvent(Changed.POSITION); | 737 | TriggerScriptChangedEvent(Changed.POSITION); |