fix the meaning of objectDuplicate[OnRay]() flags parameter but still not using it

httptests
UbitUmarov 2017-01-19 18:25:25 +00:00
parent d8108ab740
commit 6826ca9b57
5 changed files with 13 additions and 9 deletions

View File

@ -7758,10 +7758,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ObjectDuplicate handlerObjectDuplicate = null; ObjectDuplicate handlerObjectDuplicate = null;
for (int i = 0; i < dupe.ObjectData.Length; i++)
{
handlerObjectDuplicate = OnObjectDuplicate; handlerObjectDuplicate = OnObjectDuplicate;
if (handlerObjectDuplicate != null) if (handlerObjectDuplicate != null)
{
for (int i = 0; i < dupe.ObjectData.Length; i++)
{ {
UUID rezGroupID = dupe.AgentData.GroupID; UUID rezGroupID = dupe.AgentData.GroupID;
if(!IsGroupMember(rezGroupID)) if(!IsGroupMember(rezGroupID))

View File

@ -151,7 +151,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_userId, "a", 0x01); SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_userId, "a", 0x01);
m_scene.AddNewSceneObject(sog, false); m_scene.AddNewSceneObject(sog, false);
m_scene.SceneGraph.DuplicateObject(sog.LocalId, Vector3.Zero, 0, m_userId, UUID.Zero, Quaternion.Identity); m_scene.SceneGraph.DuplicateObject(sog.LocalId, Vector3.Zero, m_userId, UUID.Zero, Quaternion.Identity, false);
Assert.That(pc.Owner, Is.EqualTo(6)); Assert.That(pc.Owner, Is.EqualTo(6));
Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Group, Is.EqualTo(0));

View File

@ -3605,7 +3605,9 @@ namespace OpenSim.Region.Framework.Scenes
/// <param name="GroupID">Group of new object</param> /// <param name="GroupID">Group of new object</param>
public void DuplicateObject(uint originalPrim, Vector3 offset, uint flags, UUID AgentID, UUID GroupID) public void DuplicateObject(uint originalPrim, Vector3 offset, uint flags, UUID AgentID, UUID GroupID)
{ {
SceneObjectGroup copy = SceneGraph.DuplicateObject(originalPrim, offset, flags, AgentID, GroupID, Quaternion.Identity); bool createSelected = (flags & (uint)PrimFlags.CreateSelected) != 0;
SceneObjectGroup copy = SceneGraph.DuplicateObject(originalPrim, offset, AgentID,
GroupID, Quaternion.Identity, createSelected);
if (copy != null) if (copy != null)
EventManager.TriggerObjectAddedToScene(copy); EventManager.TriggerObjectAddedToScene(copy);
} }
@ -3635,6 +3637,8 @@ namespace OpenSim.Region.Framework.Scenes
SceneObjectPart target = GetSceneObjectPart(localID); SceneObjectPart target = GetSceneObjectPart(localID);
SceneObjectPart target2 = GetSceneObjectPart(RayTargetObj); SceneObjectPart target2 = GetSceneObjectPart(RayTargetObj);
bool createSelected = (dupeFlags & (uint)PrimFlags.CreateSelected) != 0;
if (target != null && target2 != null) if (target != null && target2 != null)
{ {
Vector3 direction = Vector3.Normalize(RayEnd - RayStart); Vector3 direction = Vector3.Normalize(RayEnd - RayStart);
@ -3676,13 +3680,13 @@ namespace OpenSim.Region.Framework.Scenes
Quaternion worldRot = target2.GetWorldRotation(); Quaternion worldRot = target2.GetWorldRotation();
// SceneObjectGroup obj = m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot); // SceneObjectGroup obj = m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot);
copy = m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot); copy = m_sceneGraph.DuplicateObject(localID, pos, AgentID, GroupID, worldRot, createSelected);
//obj.Rotation = worldRot; //obj.Rotation = worldRot;
//obj.UpdateGroupRotationR(worldRot); //obj.UpdateGroupRotationR(worldRot);
} }
else else
{ {
copy = m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, Quaternion.Identity); copy = m_sceneGraph.DuplicateObject(localID, pos, AgentID, GroupID, Quaternion.Identity, createSelected);
} }
if (copy != null) if (copy != null)

View File

@ -2057,7 +2057,7 @@ namespace OpenSim.Region.Framework.Scenes
/// <param name="rot"></param> /// <param name="rot"></param>
/// <returns>null if duplication fails, otherwise the duplicated object</returns> /// <returns>null if duplication fails, otherwise the duplicated object</returns>
/// <summary> /// <summary>
public SceneObjectGroup DuplicateObject(uint originalPrimID, Vector3 offset, uint flags, UUID AgentID, UUID GroupID, Quaternion rot) public SceneObjectGroup DuplicateObject(uint originalPrimID, Vector3 offset, UUID AgentID, UUID GroupID, Quaternion rot, bool createSelected)
{ {
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE]: Duplication of object {0} at offset {1} requested by agent {2}", // "[SCENE]: Duplication of object {0} at offset {1} requested by agent {2}",

View File

@ -67,7 +67,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
SceneObjectGroup dupeSo SceneObjectGroup dupeSo
= scene.SceneGraph.DuplicateObject( = scene.SceneGraph.DuplicateObject(
part1.LocalId, new Vector3(10, 0, 0), 0, ownerId, UUID.Zero, Quaternion.Identity); part1.LocalId, new Vector3(10, 0, 0), ownerId, UUID.Zero, Quaternion.Identity, false);
Assert.That(dupeSo.Parts.Length, Is.EqualTo(2)); Assert.That(dupeSo.Parts.Length, Is.EqualTo(2));
SceneObjectPart dupePart1 = dupeSo.GetLinkNumPart(1); SceneObjectPart dupePart1 = dupeSo.GetLinkNumPart(1);