diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index a6f6aa3..5e19a8a 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1267,17 +1267,19 @@ namespace OpenSim.Region.Framework.Scenes | |||
1267 | // TODO: Fix this after the inventory fixer exists and has beenr run | 1267 | // TODO: Fix this after the inventory fixer exists and has beenr run |
1268 | if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions()) | 1268 | if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions()) |
1269 | { | 1269 | { |
1270 | agentItem.BasePermissions = taskItem.BasePermissions & (taskItem.NextPermissions | (uint)PermissionMask.Move); | 1270 | agentItem.BasePermissions = taskItem.BasePermissions & taskItem.NextPermissions; |
1271 | if (taskItem.InvType == (int)InventoryType.Object) | 1271 | if (taskItem.InvType == (int)InventoryType.Object) |
1272 | { | 1272 | { |
1273 | if((taskItem.CurrentPermissions & (uint)PermissionMask.FoldedMask) != 0) | 1273 | uint perms = agentItem.BasePermissions; |
1274 | agentItem.BasePermissions &= | 1274 | PermissionsUtil.ApplyFoldedPermissions(taskItem.CurrentPermissions, ref perms ); |
1275 | (((taskItem.CurrentPermissions & (uint)PermissionMask.FoldedMask ) << (int)PermissionMask.FoldingShift) | | 1275 | agentItem.BasePermissions = perms; |
1276 | (taskItem.CurrentPermissions & (uint)PermissionMask.Move)); | ||
1277 | } | 1276 | } |
1278 | else | 1277 | else |
1279 | agentItem.BasePermissions &= taskItem.CurrentPermissions; | 1278 | agentItem.BasePermissions &= taskItem.CurrentPermissions; |
1280 | 1279 | ||
1280 | // always unlock | ||
1281 | agentItem.BasePermissions |= (uint)PermissionMask.Move; | ||
1282 | |||
1281 | agentItem.CurrentPermissions = agentItem.BasePermissions; | 1283 | agentItem.CurrentPermissions = agentItem.BasePermissions; |
1282 | 1284 | ||
1283 | agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; | 1285 | agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; |