aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs6
-rw-r--r--OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs2
-rwxr-xr-xOpenSim/Region/Framework/Scenes/Scene.cs10
-rwxr-xr-xOpenSim/Region/Framework/Scenes/SceneGraph.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs2
5 files changed, 13 insertions, 9 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 7455dea..410ac00 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -7758,10 +7758,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7758 7758
7759 ObjectDuplicate handlerObjectDuplicate = null; 7759 ObjectDuplicate handlerObjectDuplicate = null;
7760 7760
7761 for (int i = 0; i < dupe.ObjectData.Length; i++) 7761 handlerObjectDuplicate = OnObjectDuplicate;
7762 if (handlerObjectDuplicate != null)
7762 { 7763 {
7763 handlerObjectDuplicate = OnObjectDuplicate; 7764 for (int i = 0; i < dupe.ObjectData.Length; i++)
7764 if (handlerObjectDuplicate != null)
7765 { 7765 {
7766 UUID rezGroupID = dupe.AgentData.GroupID; 7766 UUID rezGroupID = dupe.AgentData.GroupID;
7767 if(!IsGroupMember(rezGroupID)) 7767 if(!IsGroupMember(rezGroupID))
diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
index 0d8ece7..a349aa1 100644
--- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
+++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
@@ -151,7 +151,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
151 151
152 SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_userId, "a", 0x01); 152 SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_userId, "a", 0x01);
153 m_scene.AddNewSceneObject(sog, false); 153 m_scene.AddNewSceneObject(sog, false);
154 m_scene.SceneGraph.DuplicateObject(sog.LocalId, Vector3.Zero, 0, m_userId, UUID.Zero, Quaternion.Identity); 154 m_scene.SceneGraph.DuplicateObject(sog.LocalId, Vector3.Zero, m_userId, UUID.Zero, Quaternion.Identity, false);
155 155
156 Assert.That(pc.Owner, Is.EqualTo(6)); 156 Assert.That(pc.Owner, Is.EqualTo(6));
157 Assert.That(pc.Group, Is.EqualTo(0)); 157 Assert.That(pc.Group, Is.EqualTo(0));
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index ff1e34e..d9b0327 100755
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3605,7 +3605,9 @@ namespace OpenSim.Region.Framework.Scenes
3605 /// <param name="GroupID">Group of new object</param> 3605 /// <param name="GroupID">Group of new object</param>
3606 public void DuplicateObject(uint originalPrim, Vector3 offset, uint flags, UUID AgentID, UUID GroupID) 3606 public void DuplicateObject(uint originalPrim, Vector3 offset, uint flags, UUID AgentID, UUID GroupID)
3607 { 3607 {
3608 SceneObjectGroup copy = SceneGraph.DuplicateObject(originalPrim, offset, flags, AgentID, GroupID, Quaternion.Identity); 3608 bool createSelected = (flags & (uint)PrimFlags.CreateSelected) != 0;
3609 SceneObjectGroup copy = SceneGraph.DuplicateObject(originalPrim, offset, AgentID,
3610 GroupID, Quaternion.Identity, createSelected);
3609 if (copy != null) 3611 if (copy != null)
3610 EventManager.TriggerObjectAddedToScene(copy); 3612 EventManager.TriggerObjectAddedToScene(copy);
3611 } 3613 }
@@ -3635,6 +3637,8 @@ namespace OpenSim.Region.Framework.Scenes
3635 SceneObjectPart target = GetSceneObjectPart(localID); 3637 SceneObjectPart target = GetSceneObjectPart(localID);
3636 SceneObjectPart target2 = GetSceneObjectPart(RayTargetObj); 3638 SceneObjectPart target2 = GetSceneObjectPart(RayTargetObj);
3637 3639
3640 bool createSelected = (dupeFlags & (uint)PrimFlags.CreateSelected) != 0;
3641
3638 if (target != null && target2 != null) 3642 if (target != null && target2 != null)
3639 { 3643 {
3640 Vector3 direction = Vector3.Normalize(RayEnd - RayStart); 3644 Vector3 direction = Vector3.Normalize(RayEnd - RayStart);
@@ -3676,13 +3680,13 @@ namespace OpenSim.Region.Framework.Scenes
3676 Quaternion worldRot = target2.GetWorldRotation(); 3680 Quaternion worldRot = target2.GetWorldRotation();
3677 3681
3678 // SceneObjectGroup obj = m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot); 3682 // SceneObjectGroup obj = m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot);
3679 copy = m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot); 3683 copy = m_sceneGraph.DuplicateObject(localID, pos, AgentID, GroupID, worldRot, createSelected);
3680 //obj.Rotation = worldRot; 3684 //obj.Rotation = worldRot;
3681 //obj.UpdateGroupRotationR(worldRot); 3685 //obj.UpdateGroupRotationR(worldRot);
3682 } 3686 }
3683 else 3687 else
3684 { 3688 {
3685 copy = m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, Quaternion.Identity); 3689 copy = m_sceneGraph.DuplicateObject(localID, pos, AgentID, GroupID, Quaternion.Identity, createSelected);
3686 } 3690 }
3687 3691
3688 if (copy != null) 3692 if (copy != null)
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 6a36982..ebf081e 100755
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -2057,7 +2057,7 @@ namespace OpenSim.Region.Framework.Scenes
2057 /// <param name="rot"></param> 2057 /// <param name="rot"></param>
2058 /// <returns>null if duplication fails, otherwise the duplicated object</returns> 2058 /// <returns>null if duplication fails, otherwise the duplicated object</returns>
2059 /// <summary> 2059 /// <summary>
2060 public SceneObjectGroup DuplicateObject(uint originalPrimID, Vector3 offset, uint flags, UUID AgentID, UUID GroupID, Quaternion rot) 2060 public SceneObjectGroup DuplicateObject(uint originalPrimID, Vector3 offset, UUID AgentID, UUID GroupID, Quaternion rot, bool createSelected)
2061 { 2061 {
2062// m_log.DebugFormat( 2062// m_log.DebugFormat(
2063// "[SCENE]: Duplication of object {0} at offset {1} requested by agent {2}", 2063// "[SCENE]: Duplication of object {0} at offset {1} requested by agent {2}",
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs
index 56723bf..4d2eb3f 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs
@@ -67,7 +67,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
67 67
68 SceneObjectGroup dupeSo 68 SceneObjectGroup dupeSo
69 = scene.SceneGraph.DuplicateObject( 69 = scene.SceneGraph.DuplicateObject(
70 part1.LocalId, new Vector3(10, 0, 0), 0, ownerId, UUID.Zero, Quaternion.Identity); 70 part1.LocalId, new Vector3(10, 0, 0), ownerId, UUID.Zero, Quaternion.Identity, false);
71 Assert.That(dupeSo.Parts.Length, Is.EqualTo(2)); 71 Assert.That(dupeSo.Parts.Length, Is.EqualTo(2));
72 72
73 SceneObjectPart dupePart1 = dupeSo.GetLinkNumPart(1); 73 SceneObjectPart dupePart1 = dupeSo.GetLinkNumPart(1);