diff options
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index a8387c4..750b5b9 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -502,8 +502,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
502 | itemCopy.CurrentPermissions = itemCopy.BasePermissions; | 502 | itemCopy.CurrentPermissions = itemCopy.BasePermissions; |
503 | if ((item.CurrentPermissions & 8) != 0) // Propagate slam bit | 503 | if ((item.CurrentPermissions & 8) != 0) // Propagate slam bit |
504 | { | 504 | { |
505 | itemCopy.CurrentPermissions = item.NextPermissions; | 505 | itemCopy.BasePermissions &= item.NextPermissions; |
506 | itemCopy.BasePermissions = itemCopy.CurrentPermissions; | 506 | itemCopy.CurrentPermissions = itemCopy.BasePermissions; |
507 | itemCopy.CurrentPermissions |= 8; | 507 | itemCopy.CurrentPermissions |= 8; |
508 | } | 508 | } |
509 | 509 | ||
@@ -1091,8 +1091,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
1091 | 1091 | ||
1092 | if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions()) | 1092 | if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions()) |
1093 | { | 1093 | { |
1094 | agentItem.BasePermissions = taskItem.NextPermissions; | 1094 | if (taskItem.InvType == 6) |
1095 | agentItem.CurrentPermissions = taskItem.NextPermissions | 8; | 1095 | agentItem.BasePermissions = taskItem.BasePermissions & ((taskItem.CurrentPermissions & 7) << 13); |
1096 | else | ||
1097 | agentItem.BasePermissions = taskItem.BasePermissions; | ||
1098 | agentItem.BasePermissions &= taskItem.NextPermissions; | ||
1099 | agentItem.CurrentPermissions = agentItem.BasePermissions | 8; | ||
1096 | agentItem.NextPermissions = taskItem.NextPermissions; | 1100 | agentItem.NextPermissions = taskItem.NextPermissions; |
1097 | agentItem.EveryOnePermissions = taskItem.EveryonePermissions & taskItem.NextPermissions; | 1101 | agentItem.EveryOnePermissions = taskItem.EveryonePermissions & taskItem.NextPermissions; |
1098 | agentItem.GroupPermissions = taskItem.GroupPermissions & taskItem.NextPermissions; | 1102 | agentItem.GroupPermissions = taskItem.GroupPermissions & taskItem.NextPermissions; |
@@ -1982,6 +1986,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1982 | item.NextPermissions = objectGroup.RootPart.NextOwnerMask; | 1986 | item.NextPermissions = objectGroup.RootPart.NextOwnerMask; |
1983 | item.EveryOnePermissions = objectGroup.RootPart.EveryoneMask; | 1987 | item.EveryOnePermissions = objectGroup.RootPart.EveryoneMask; |
1984 | item.GroupPermissions = objectGroup.RootPart.GroupMask; | 1988 | item.GroupPermissions = objectGroup.RootPart.GroupMask; |
1989 | |||
1990 | item.CurrentPermissions |= 8; // Slam! | ||
1985 | } | 1991 | } |
1986 | 1992 | ||
1987 | // TODO: add the new fields (Flags, Sale info, etc) | 1993 | // TODO: add the new fields (Flags, Sale info, etc) |