diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 18 |
2 files changed, 3 insertions, 17 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index dfcbc4c..69a909b 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -1851,7 +1851,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1851 | SceneObjectGroup copy = original.Copy(AgentID, GroupID, true); | 1851 | SceneObjectGroup copy = original.Copy(AgentID, GroupID, true); |
1852 | copy.AbsolutePosition = copy.AbsolutePosition + offset; | 1852 | copy.AbsolutePosition = copy.AbsolutePosition + offset; |
1853 | 1853 | ||
1854 | if (copy.OwnerID != AgentID) | 1854 | if (original.OwnerID != AgentID) |
1855 | { | 1855 | { |
1856 | copy.SetOwnerId(AgentID); | 1856 | copy.SetOwnerId(AgentID); |
1857 | copy.SetRootPartOwner(copy.RootPart, AgentID, GroupID); | 1857 | copy.SetRootPartOwner(copy.RootPart, AgentID, GroupID); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 7081ced..241295f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1781,7 +1781,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1781 | dupe.AbsolutePosition = new Vector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); | 1781 | dupe.AbsolutePosition = new Vector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); |
1782 | 1782 | ||
1783 | if (!userExposed) | 1783 | if (!userExposed) |
1784 | { | ||
1784 | dupe.RootPart.IsAttachment = previousAttachmentStatus; | 1785 | dupe.RootPart.IsAttachment = previousAttachmentStatus; |
1786 | } | ||
1785 | 1787 | ||
1786 | dupe.CopyRootPart(m_rootPart, OwnerID, GroupID, userExposed); | 1788 | dupe.CopyRootPart(m_rootPart, OwnerID, GroupID, userExposed); |
1787 | dupe.m_rootPart.LinkNum = m_rootPart.LinkNum; | 1789 | dupe.m_rootPart.LinkNum = m_rootPart.LinkNum; |
@@ -1806,16 +1808,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1806 | dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); | 1808 | dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); |
1807 | } | 1809 | } |
1808 | 1810 | ||
1809 | // Now we've made a copy that replaces this one, we need to | ||
1810 | // switch the owner to the person who did the copying | ||
1811 | // Second Life copies an object and duplicates the first one in it's place | ||
1812 | // So, we have to make a copy of this one, set it in it's place then set the owner on this one | ||
1813 | if (userExposed) | ||
1814 | { | ||
1815 | SetRootPartOwner(m_rootPart, cAgentID, cGroupID); | ||
1816 | m_rootPart.ScheduleFullUpdate(); | ||
1817 | } | ||
1818 | |||
1819 | List<SceneObjectPart> partList; | 1811 | List<SceneObjectPart> partList; |
1820 | 1812 | ||
1821 | lockPartsForRead(true); | 1813 | lockPartsForRead(true); |
@@ -1837,12 +1829,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1837 | SceneObjectPart newPart = dupe.CopyPart(part, OwnerID, GroupID, userExposed); | 1829 | SceneObjectPart newPart = dupe.CopyPart(part, OwnerID, GroupID, userExposed); |
1838 | 1830 | ||
1839 | newPart.LinkNum = part.LinkNum; | 1831 | newPart.LinkNum = part.LinkNum; |
1840 | |||
1841 | if (userExposed) | ||
1842 | { | ||
1843 | SetPartOwner(newPart, cAgentID, cGroupID); | ||
1844 | newPart.ScheduleFullUpdate(); | ||
1845 | } | ||
1846 | } | 1832 | } |
1847 | } | 1833 | } |
1848 | 1834 | ||