aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs18
1 files changed, 11 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
index f7e46af..f96573d 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
@@ -281,7 +281,7 @@ namespace OpenSim.Region.Framework.Scenes
281 PermissionMask.Move | 281 PermissionMask.Move |
282 PermissionMask.Transfer) | 7; 282 PermissionMask.Transfer) | 7;
283 283
284 uint ownerMask = 0x7ffffff; 284 uint ownerMask = 0x7fffffff;
285 foreach (SceneObjectPart part in m_parts.Values) 285 foreach (SceneObjectPart part in m_parts.Values)
286 { 286 {
287 ownerMask &= part.OwnerMask; 287 ownerMask &= part.OwnerMask;
@@ -295,12 +295,16 @@ namespace OpenSim.Region.Framework.Scenes
295 if ((ownerMask & (uint)PermissionMask.Transfer) == 0) 295 if ((ownerMask & (uint)PermissionMask.Transfer) == 0)
296 perms &= ~(uint)PermissionMask.Transfer; 296 perms &= ~(uint)PermissionMask.Transfer;
297 297
298 if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0) 298 // If root prim permissions are applied here, this would screw
299 perms &= ~((uint)PermissionMask.Modify >> 13); 299 // with in-inventory manipulation of the next owner perms
300 if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0) 300 // in a major way. So, let's move this to the give itself.
301 perms &= ~((uint)PermissionMask.Copy >> 13); 301 // Yes. I know. Evil.
302 if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0) 302// if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0)
303 perms &= ~((uint)PermissionMask.Transfer >> 13); 303// perms &= ~((uint)PermissionMask.Modify >> 13);
304// if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0)
305// perms &= ~((uint)PermissionMask.Copy >> 13);
306// if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0)
307// perms &= ~((uint)PermissionMask.Transfer >> 13);
304 308
305 return perms; 309 return perms;
306 } 310 }