diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | 18 |
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 70b37fb..abb4de6 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -280,7 +280,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
280 | PermissionMask.Move | | 280 | PermissionMask.Move | |
281 | PermissionMask.Transfer) | 7; | 281 | PermissionMask.Transfer) | 7; |
282 | 282 | ||
283 | uint ownerMask = 0x7ffffff; | 283 | uint ownerMask = 0x7fffffff; |
284 | foreach (SceneObjectPart part in m_parts.Values) | 284 | foreach (SceneObjectPart part in m_parts.Values) |
285 | { | 285 | { |
286 | ownerMask &= part.OwnerMask; | 286 | ownerMask &= part.OwnerMask; |
@@ -294,12 +294,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
294 | if ((ownerMask & (uint)PermissionMask.Transfer) == 0) | 294 | if ((ownerMask & (uint)PermissionMask.Transfer) == 0) |
295 | perms &= ~(uint)PermissionMask.Transfer; | 295 | perms &= ~(uint)PermissionMask.Transfer; |
296 | 296 | ||
297 | if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0) | 297 | // If root prim permissions are applied here, this would screw |
298 | perms &= ~((uint)PermissionMask.Modify >> 13); | 298 | // with in-inventory manipulation of the next owner perms |
299 | if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0) | 299 | // in a major way. So, let's move this to the give itself. |
300 | perms &= ~((uint)PermissionMask.Copy >> 13); | 300 | // Yes. I know. Evil. |
301 | if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0) | 301 | // if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0) |
302 | perms &= ~((uint)PermissionMask.Transfer >> 13); | 302 | // perms &= ~((uint)PermissionMask.Modify >> 13); |
303 | // if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0) | ||
304 | // perms &= ~((uint)PermissionMask.Copy >> 13); | ||
305 | // if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0) | ||
306 | // perms &= ~((uint)PermissionMask.Transfer >> 13); | ||
303 | 307 | ||
304 | return perms; | 308 | return perms; |
305 | } | 309 | } |