diff options
author | Kitto Flora | 2011-01-13 04:48:32 +0000 |
---|---|---|
committer | Kitto Flora | 2011-01-13 04:48:32 +0000 |
commit | c0134710f7f2c2ee51f51166f0987d3d6d589204 (patch) | |
tree | 77c933047a09377ec1647ed78f45cbbb29b9f246 /OpenSim/Region/CoreModules | |
parent | Add llLookAt() kinetic. Reduce StandUp +x offset to 0.3M. (diff) | |
parent | Merge branch 'master' into careminster-presence-refactor (diff) | |
download | opensim-SC-c0134710f7f2c2ee51f51166f0987d3d6d589204.zip opensim-SC-c0134710f7f2c2ee51f51166f0987d3d6d589204.tar.gz opensim-SC-c0134710f7f2c2ee51f51166f0987d3d6d589204.tar.bz2 opensim-SC-c0134710f7f2c2ee51f51166f0987d3d6d589204.tar.xz |
Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | 35 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs | 2 |
2 files changed, 24 insertions, 13 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 623cd3a..0163060 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -511,10 +511,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
511 | item.EveryOnePermissions = objlist[0].RootPart.EveryoneMask & objlist[0].RootPart.NextOwnerMask; | 511 | item.EveryOnePermissions = objlist[0].RootPart.EveryoneMask & objlist[0].RootPart.NextOwnerMask; |
512 | item.GroupPermissions = objlist[0].RootPart.GroupMask & objlist[0].RootPart.NextOwnerMask; | 512 | item.GroupPermissions = objlist[0].RootPart.GroupMask & objlist[0].RootPart.NextOwnerMask; |
513 | 513 | ||
514 | // Magic number badness. Maybe this deserves an enum. | 514 | item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; |
515 | // bit 4 (16) is the "Slam" bit, it means treat as passed | ||
516 | // and apply next owner perms on rez | ||
517 | item.CurrentPermissions |= 16; // Slam! | ||
518 | } | 515 | } |
519 | else | 516 | else |
520 | { | 517 | { |
@@ -789,13 +786,19 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
789 | { | 786 | { |
790 | rootPart.Name = item.Name; | 787 | rootPart.Name = item.Name; |
791 | rootPart.Description = item.Description; | 788 | rootPart.Description = item.Description; |
789 | } | ||
790 | if ((item.Flags & (uint)InventoryItemFlags.ObjectSlamSale) != 0) | ||
791 | { | ||
792 | rootPart.ObjectSaleType = item.SaleType; | 792 | rootPart.ObjectSaleType = item.SaleType; |
793 | rootPart.SalePrice = item.SalePrice; | 793 | rootPart.SalePrice = item.SalePrice; |
794 | } | 794 | } |
795 | 795 | ||
796 | group.SetGroup(remoteClient.ActiveGroupId, remoteClient); | 796 | group.SetGroup(remoteClient.ActiveGroupId, remoteClient); |
797 | // TODO: Remove the magic number badness | ||
798 | |||
797 | if ((rootPart.OwnerID != item.Owner) || | 799 | if ((rootPart.OwnerID != item.Owner) || |
798 | (item.CurrentPermissions & 16) != 0) | 800 | (item.CurrentPermissions & 16) != 0 || // Magic number |
801 | (item.Flags & (uint)InventoryItemFlags.ObjectSlamPerm) != 0) | ||
799 | { | 802 | { |
800 | //Need to kill the for sale here | 803 | //Need to kill the for sale here |
801 | rootPart.ObjectSaleType = 0; | 804 | rootPart.ObjectSaleType = 0; |
@@ -807,10 +810,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
807 | { | 810 | { |
808 | if ((item.Flags & (uint)InventoryItemFlags.ObjectHasMultipleItems) == 0) | 811 | if ((item.Flags & (uint)InventoryItemFlags.ObjectHasMultipleItems) == 0) |
809 | { | 812 | { |
810 | part.EveryoneMask = item.EveryOnePermissions; | 813 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteEveryone) != 0) |
811 | part.NextOwnerMask = item.NextPermissions; | 814 | part.EveryoneMask = item.EveryOnePermissions; |
815 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteNextOwner) != 0) | ||
816 | part.NextOwnerMask = item.NextPermissions; | ||
817 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteGroup) != 0) | ||
818 | part.GroupMask = item.GroupPermissions; | ||
812 | } | 819 | } |
813 | part.GroupMask = 0; // DO NOT propagate here | ||
814 | } | 820 | } |
815 | 821 | ||
816 | group.ApplyNextOwnerPermissions(); | 822 | group.ApplyNextOwnerPermissions(); |
@@ -819,16 +825,21 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
819 | 825 | ||
820 | foreach (SceneObjectPart part in group.Parts) | 826 | foreach (SceneObjectPart part in group.Parts) |
821 | { | 827 | { |
828 | // TODO: Remove the magic number badness | ||
822 | if ((part.OwnerID != item.Owner) || | 829 | if ((part.OwnerID != item.Owner) || |
823 | (item.CurrentPermissions & 16) != 0) | 830 | (item.CurrentPermissions & 16) != 0 || // Magic number |
831 | (item.Flags & (uint)InventoryItemFlags.ObjectSlamPerm) != 0) | ||
824 | { | 832 | { |
825 | part.LastOwnerID = part.OwnerID; | 833 | part.LastOwnerID = part.OwnerID; |
826 | part.OwnerID = item.Owner; | 834 | part.OwnerID = item.Owner; |
827 | part.Inventory.ChangeInventoryOwner(item.Owner); | 835 | part.Inventory.ChangeInventoryOwner(item.Owner); |
828 | part.GroupMask = 0; // DO NOT propagate here | ||
829 | } | 836 | } |
830 | part.EveryoneMask = item.EveryOnePermissions; | 837 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteEveryone) != 0) |
831 | part.NextOwnerMask = item.NextPermissions; | 838 | part.EveryoneMask = item.EveryOnePermissions; |
839 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteNextOwner) != 0) | ||
840 | part.NextOwnerMask = item.NextPermissions; | ||
841 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteGroup) != 0) | ||
842 | part.GroupMask = item.GroupPermissions; | ||
832 | } | 843 | } |
833 | 844 | ||
834 | rootPart.TrimPermissions(); | 845 | rootPart.TrimPermissions(); |
diff --git a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs index 568ba19..be399ff 100644 --- a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs +++ b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs | |||
@@ -215,7 +215,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
215 | part.NextOwnerMask; | 215 | part.NextOwnerMask; |
216 | item.GroupPermissions = part.GroupMask & | 216 | item.GroupPermissions = part.GroupMask & |
217 | part.NextOwnerMask; | 217 | part.NextOwnerMask; |
218 | item.CurrentPermissions |= 16; // Slam! | 218 | item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; |
219 | item.CreationDate = Util.UnixTimeSinceEpoch(); | 219 | item.CreationDate = Util.UnixTimeSinceEpoch(); |
220 | 220 | ||
221 | if (m_scene.AddInventoryItem(item)) | 221 | if (m_scene.AddInventoryItem(item)) |