diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs index 5ce8985..1b2ee7d 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -248,21 +248,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
248 | PermissionMask.Move | | 248 | PermissionMask.Move | |
249 | PermissionMask.Transfer) | 7; | 249 | PermissionMask.Transfer) | 7; |
250 | 250 | ||
251 | uint ownerMask = 0x7ffffff; | ||
251 | foreach (SceneObjectPart part in m_parts.Values) | 252 | foreach (SceneObjectPart part in m_parts.Values) |
253 | { | ||
254 | ownerMask &= part.OwnerMask; | ||
252 | perms &= part.MaskEffectivePermissions(); | 255 | perms &= part.MaskEffectivePermissions(); |
256 | } | ||
253 | 257 | ||
254 | if ((RootPart.OwnerMask & (uint)PermissionMask.Modify) == 0) | 258 | if (ownerMask & (uint)PermissionMask.Modify) == 0) |
255 | perms &= ~(uint)PermissionMask.Modify; | 259 | perms &= ~(uint)PermissionMask.Modify; |
256 | if ((RootPart.OwnerMask & (uint)PermissionMask.Copy) == 0) | 260 | if (ownerMask & (uint)PermissionMask.Copy) == 0) |
257 | perms &= ~(uint)PermissionMask.Copy; | 261 | perms &= ~(uint)PermissionMask.Copy; |
258 | if ((RootPart.OwnerMask & (uint)PermissionMask.Transfer) == 0) | 262 | if (ownerMask & (uint)PermissionMask.Transfer) == 0) |
259 | perms &= ~(uint)PermissionMask.Transfer; | 263 | perms &= ~(uint)PermissionMask.Transfer; |
260 | 264 | ||
261 | if ((RootPart.OwnerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0) | 265 | if (ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0) |
262 | perms &= ~((uint)PermissionMask.Modify >> 13); | 266 | perms &= ~((uint)PermissionMask.Modify >> 13); |
263 | if ((RootPart.OwnerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0) | 267 | if (ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0) |
264 | perms &= ~((uint)PermissionMask.Copy >> 13); | 268 | perms &= ~((uint)PermissionMask.Copy >> 13); |
265 | if ((RootPart.OwnerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0) | 269 | if (ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0) |
266 | perms &= ~((uint)PermissionMask.Transfer >> 13); | 270 | perms &= ~((uint)PermissionMask.Transfer >> 13); |
267 | 271 | ||
268 | return perms; | 272 | return perms; |