aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs18
3 files changed, 6 insertions, 20 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index f071841..cf1dda9 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -6307,8 +6307,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6307 if (handlerObjectDuplicate != null) 6307 if (handlerObjectDuplicate != null)
6308 { 6308 {
6309 handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, 6309 handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset,
6310 dupe.SharedData.DuplicateFlags, AgentandGroupData.AgentID, 6310 dupe.SharedData.DuplicateFlags, AgentId,
6311 AgentandGroupData.GroupID); 6311 m_activeGroupID);
6312 } 6312 }
6313 } 6313 }
6314 6314
@@ -6898,7 +6898,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6898 if (handlerObjectDuplicateOnRay != null) 6898 if (handlerObjectDuplicateOnRay != null)
6899 { 6899 {
6900 handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags, 6900 handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags,
6901 dupeOnRay.AgentData.AgentID, dupeOnRay.AgentData.GroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, 6901 AgentId, m_activeGroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd,
6902 dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection, 6902 dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection,
6903 dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); 6903 dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates);
6904 } 6904 }
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