diff options
Diffstat (limited to 'OpenSim/Region/Environment')
3 files changed, 16 insertions, 12 deletions
diff --git a/OpenSim/Region/Environment/PermissionManager.cs b/OpenSim/Region/Environment/PermissionManager.cs index 3f1ba18..ea93050 100644 --- a/OpenSim/Region/Environment/PermissionManager.cs +++ b/OpenSim/Region/Environment/PermissionManager.cs | |||
@@ -57,7 +57,7 @@ namespace OpenSim.Region.Environment | |||
57 | return false; | 57 | return false; |
58 | 58 | ||
59 | SceneObject task = (SceneObject)m_scene.Entities[obj]; | 59 | SceneObject task = (SceneObject)m_scene.Entities[obj]; |
60 | LLUUID taskOwner = null; // Since we dont have a 'owner' property on task yet | 60 | LLUUID taskOwner = task.rootPrimitive.OwnerID; |
61 | 61 | ||
62 | // Object owners should be able to edit their own content | 62 | // Object owners should be able to edit their own content |
63 | if (user == taskOwner) | 63 | if (user == taskOwner) |
diff --git a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs index 8ed04d9..3eb34b4 100644 --- a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs +++ b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs | |||
@@ -94,16 +94,24 @@ namespace OpenSim.Region.Environment.Scenes | |||
94 | return dupe; | 94 | return dupe; |
95 | } | 95 | } |
96 | 96 | ||
97 | /// <summary> | ||
98 | /// | ||
99 | /// </summary> | ||
100 | /// <param name="part"></param> | ||
97 | public void CopyRootPart(AllNewSceneObjectPart2 part) | 101 | public void CopyRootPart(AllNewSceneObjectPart2 part) |
98 | { | 102 | { |
99 | AllNewSceneObjectPart2 newPart = part.Copy(m_scene); | 103 | AllNewSceneObjectPart2 newPart = part.Copy(m_scene.PrimIDAllocate()); |
100 | this.m_parts.Add(newPart.UUID, newPart); | 104 | this.m_parts.Add(newPart.UUID, newPart); |
101 | this.SetPartAsRoot(newPart); | 105 | this.SetPartAsRoot(newPart); |
102 | } | 106 | } |
103 | 107 | ||
108 | /// <summary> | ||
109 | /// | ||
110 | /// </summary> | ||
111 | /// <param name="part"></param> | ||
104 | public void CopyPart(AllNewSceneObjectPart2 part) | 112 | public void CopyPart(AllNewSceneObjectPart2 part) |
105 | { | 113 | { |
106 | AllNewSceneObjectPart2 newPart = part.Copy(m_scene); | 114 | AllNewSceneObjectPart2 newPart = part.Copy(m_scene.PrimIDAllocate()); |
107 | this.m_parts.Add(newPart.UUID, newPart); | 115 | this.m_parts.Add(newPart.UUID, newPart); |
108 | this.SetPartAsNonRoot(newPart); | 116 | this.SetPartAsNonRoot(newPart); |
109 | } | 117 | } |
diff --git a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs index 65b4287..42acab9 100644 --- a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs +++ b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs | |||
@@ -27,7 +27,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
27 | public uint EveryoneMask = FULL_MASK_PERMISSIONS; | 27 | public uint EveryoneMask = FULL_MASK_PERMISSIONS; |
28 | public uint BaseMask = FULL_MASK_PERMISSIONS; | 28 | public uint BaseMask = FULL_MASK_PERMISSIONS; |
29 | 29 | ||
30 | protected PrimitiveBaseShape m_shape; | 30 | |
31 | protected byte[] m_particleSystem = new byte[0]; | 31 | protected byte[] m_particleSystem = new byte[0]; |
32 | 32 | ||
33 | protected AllNewSceneObjectGroup2 m_parentGroup; | 33 | protected AllNewSceneObjectGroup2 m_parentGroup; |
@@ -54,9 +54,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
54 | } | 54 | } |
55 | 55 | ||
56 | protected string m_name; | 56 | protected string m_name; |
57 | /// <summary> | ||
58 | /// | ||
59 | /// </summary> | ||
60 | public virtual string Name | 57 | public virtual string Name |
61 | { | 58 | { |
62 | get { return m_name; } | 59 | get { return m_name; } |
@@ -154,9 +151,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
154 | set { m_touchName = value; } | 151 | set { m_touchName = value; } |
155 | } | 152 | } |
156 | 153 | ||
154 | protected PrimitiveBaseShape m_shape; | ||
157 | public PrimitiveBaseShape Shape | 155 | public PrimitiveBaseShape Shape |
158 | { | 156 | { |
159 | |||
160 | get { return this.m_shape; } | 157 | get { return this.m_shape; } |
161 | set { m_shape = value; } | 158 | set { m_shape = value; } |
162 | } | 159 | } |
@@ -245,14 +242,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
245 | /// | 242 | /// |
246 | /// </summary> | 243 | /// </summary> |
247 | /// <returns></returns> | 244 | /// <returns></returns> |
248 | public AllNewSceneObjectPart2 Copy(Scene scene) | 245 | public AllNewSceneObjectPart2 Copy(uint localID) |
249 | { | 246 | { |
250 | AllNewSceneObjectPart2 dupe = (AllNewSceneObjectPart2)this.MemberwiseClone(); | 247 | AllNewSceneObjectPart2 dupe = (AllNewSceneObjectPart2)this.MemberwiseClone(); |
251 | dupe.m_shape = m_shape.Copy(); | 248 | dupe.m_shape = m_shape.Copy(); |
252 | dupe.m_regionHandle = m_regionHandle; | 249 | dupe.m_regionHandle = m_regionHandle; |
253 | uint newLocalID = scene.PrimIDAllocate(); | ||
254 | dupe.UUID = LLUUID.Random(); | 250 | dupe.UUID = LLUUID.Random(); |
255 | dupe.LocalID = newLocalID; | 251 | dupe.LocalID = localID; |
256 | dupe.OffsetPosition = new LLVector3(OffsetPosition.X, OffsetPosition.Y, OffsetPosition.Z); | 252 | dupe.OffsetPosition = new LLVector3(OffsetPosition.X, OffsetPosition.Y, OffsetPosition.Z); |
257 | dupe.RotationOffset = new LLQuaternion(RotationOffset.X, RotationOffset.Y, RotationOffset.Z, RotationOffset.W); | 253 | dupe.RotationOffset = new LLQuaternion(RotationOffset.X, RotationOffset.Y, RotationOffset.Z, RotationOffset.W); |
258 | dupe.Velocity = new LLVector3(0, 0, 0); | 254 | dupe.Velocity = new LLVector3(0, 0, 0); |
@@ -303,7 +299,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
303 | } | 299 | } |
304 | else | 300 | else |
305 | { | 301 | { |
306 | if (m_updateFlag == 2) // is a new prim just been created/reloaded or has major changes | 302 | if (m_updateFlag == 2) // is a new prim, just created/reloaded or has major changes |
307 | { | 303 | { |
308 | SendFullUpdateToAllClients(); | 304 | SendFullUpdateToAllClients(); |
309 | ClearUpdateSchedule(); | 305 | ClearUpdateSchedule(); |