diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index edf8cb6..668766b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1273,11 +1273,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
1273 | { | 1273 | { |
1274 | agentItem.BasePermissions = taskItem.BasePermissions & (taskItem.NextPermissions | (uint)PermissionMask.Move); | 1274 | agentItem.BasePermissions = taskItem.BasePermissions & (taskItem.NextPermissions | (uint)PermissionMask.Move); |
1275 | if (taskItem.InvType == (int)InventoryType.Object) | 1275 | if (taskItem.InvType == (int)InventoryType.Object) |
1276 | agentItem.CurrentPermissions = agentItem.BasePermissions & (((taskItem.CurrentPermissions & 7) << 13) | (taskItem.CurrentPermissions & (uint)PermissionMask.Move)); | 1276 | { |
1277 | if((taskItem.CurrentPermissions & (uint)PermissionMask.FoldedMask) != 0) | ||
1278 | agentItem.BasePermissions &= | ||
1279 | (((taskItem.CurrentPermissions & (uint)PermissionMask.FoldedMask ) << (int)PermissionMask.FoldingShift) | | ||
1280 | (taskItem.CurrentPermissions & (uint)PermissionMask.Move)); | ||
1281 | } | ||
1277 | else | 1282 | else |
1278 | agentItem.CurrentPermissions = agentItem.BasePermissions & taskItem.CurrentPermissions; | 1283 | agentItem.BasePermissions &= taskItem.CurrentPermissions; |
1279 | 1284 | ||
1280 | agentItem.BasePermissions = agentItem.CurrentPermissions; | 1285 | agentItem.CurrentPermissions = agentItem.BasePermissions; |
1281 | 1286 | ||
1282 | agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; | 1287 | agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; |
1283 | agentItem.Flags &= ~(uint)(InventoryItemFlags.ObjectOverwriteBase | InventoryItemFlags.ObjectOverwriteOwner | InventoryItemFlags.ObjectOverwriteGroup | InventoryItemFlags.ObjectOverwriteEveryone | InventoryItemFlags.ObjectOverwriteNextOwner); | 1288 | agentItem.Flags &= ~(uint)(InventoryItemFlags.ObjectOverwriteBase | InventoryItemFlags.ObjectOverwriteOwner | InventoryItemFlags.ObjectOverwriteGroup | InventoryItemFlags.ObjectOverwriteEveryone | InventoryItemFlags.ObjectOverwriteNextOwner); |