aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs16
1 files changed, 15 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 4711701..c5fdcaf 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -673,7 +673,13 @@ namespace OpenSim.Region.Environment.Scenes
673 m_rootPart.m_IsAttachment = true; 673 m_rootPart.m_IsAttachment = true;
674 674
675 m_rootPart.SetParentLocalId(avatar.LocalId); 675 m_rootPart.SetParentLocalId(avatar.LocalId);
676 m_rootPart.SetAttachmentPoint(attachmentpoint); 676 lock (m_parts)
677 {
678 foreach (SceneObjectPart part in m_parts.Values)
679 {
680 part.SetAttachmentPoint(attachmentpoint);
681 }
682 }
677 683
678 avatar.AddAttachment(this); 684 avatar.AddAttachment(this);
679 m_rootPart.ScheduleFullUpdate(); 685 m_rootPart.ScheduleFullUpdate();
@@ -688,6 +694,14 @@ namespace OpenSim.Region.Environment.Scenes
688 return (byte)0; 694 return (byte)0;
689 } 695 }
690 696
697 public void ClearPartAttachmentData()
698 {
699 foreach (SceneObjectPart part in m_parts.Values)
700 {
701 part.SetAttachmentPoint((Byte)0);
702 }
703 }
704
691 public void DetachToGround() 705 public void DetachToGround()
692 { 706 {
693 ScenePresence avatar = m_scene.GetScenePresence(m_rootPart.m_attachedAvatar); 707 ScenePresence avatar = m_scene.GetScenePresence(m_rootPart.m_attachedAvatar);