aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs11
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);