diff options
Diffstat (limited to 'OpenSim')
-rwxr-xr-x | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 57 |
2 files changed, 1 insertions, 58 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 8fc438d..49e98e7 100755 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -1569,7 +1569,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1569 | if (group.IsAttachment || (group.RootPart.Shape.PCode == 9 && group.RootPart.Shape.State != 0)) | 1569 | if (group.IsAttachment || (group.RootPart.Shape.PCode == 9 && group.RootPart.Shape.State != 0)) |
1570 | { | 1570 | { |
1571 | // Set the new attachment point data in the object | 1571 | // Set the new attachment point data in the object |
1572 | byte attachmentPoint = group.GetAttachmentPoint(); | 1572 | byte attachmentPoint = (byte)group.AttachmentPoint; |
1573 | group.UpdateGroupPosition(pos); | 1573 | group.UpdateGroupPosition(pos); |
1574 | group.IsAttachment = false; | 1574 | group.IsAttachment = false; |
1575 | group.AbsolutePosition = group.RootPart.AttachedPos; | 1575 | group.AbsolutePosition = group.RootPart.AttachedPos; |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 83c5db4..dff242e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1783,63 +1783,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1783 | } | 1783 | } |
1784 | } | 1784 | } |
1785 | 1785 | ||
1786 | /// <summary> | ||
1787 | /// Attach this scene object to the given avatar. | ||
1788 | /// </summary> | ||
1789 | /// <param name="agentID"></param> | ||
1790 | /// <param name="attachmentpoint"></param> | ||
1791 | /// <param name="AttachOffset"></param> | ||
1792 | private void AttachToAgent( | ||
1793 | ScenePresence avatar, SceneObjectGroup so, uint attachmentpoint, Vector3 attachOffset, bool silent) | ||
1794 | { | ||
1795 | if (avatar != null) | ||
1796 | { | ||
1797 | // don't attach attachments to child agents | ||
1798 | if (avatar.IsChildAgent) return; | ||
1799 | |||
1800 | // Remove from database and parcel prim count | ||
1801 | m_scene.DeleteFromStorage(so.UUID); | ||
1802 | m_scene.EventManager.TriggerParcelPrimCountTainted(); | ||
1803 | |||
1804 | so.AttachedAvatar = avatar.UUID; | ||
1805 | |||
1806 | if (so.RootPart.PhysActor != null) | ||
1807 | { | ||
1808 | m_scene.PhysicsScene.RemovePrim(so.RootPart.PhysActor); | ||
1809 | so.RootPart.PhysActor = null; | ||
1810 | } | ||
1811 | |||
1812 | so.AbsolutePosition = attachOffset; | ||
1813 | so.RootPart.AttachedPos = attachOffset; | ||
1814 | so.IsAttachment = true; | ||
1815 | so.RootPart.SetParentLocalId(avatar.LocalId); | ||
1816 | so.AttachmentPoint = attachmentpoint; | ||
1817 | |||
1818 | avatar.AddAttachment(this); | ||
1819 | |||
1820 | if (!silent) | ||
1821 | { | ||
1822 | // Killing it here will cause the client to deselect it | ||
1823 | // It then reappears on the avatar, deselected | ||
1824 | // through the full update below | ||
1825 | // | ||
1826 | if (IsSelected) | ||
1827 | { | ||
1828 | m_scene.SendKillObject(new List<uint> { m_rootPart.LocalId }); | ||
1829 | } | ||
1830 | |||
1831 | IsSelected = false; // fudge.... | ||
1832 | ScheduleGroupForFullUpdate(); | ||
1833 | } | ||
1834 | } | ||
1835 | else | ||
1836 | { | ||
1837 | m_log.WarnFormat( | ||
1838 | "[SOG]: Tried to add attachment {0} to avatar with UUID {1} in region {2} but the avatar is not present", | ||
1839 | UUID, avatar.ControllingClient.AgentId, Scene.RegionInfo.RegionName); | ||
1840 | } | ||
1841 | } | ||
1842 | |||
1843 | public byte GetAttachmentPoint() | 1786 | public byte GetAttachmentPoint() |
1844 | { | 1787 | { |
1845 | return m_rootPart.Shape.State; | 1788 | return m_rootPart.Shape.State; |