aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
authorKitto Flora2011-01-13 04:48:32 +0000
committerKitto Flora2011-01-13 04:48:32 +0000
commitc0134710f7f2c2ee51f51166f0987d3d6d589204 (patch)
tree77c933047a09377ec1647ed78f45cbbb29b9f246 /OpenSim/Region/CoreModules
parentAdd llLookAt() kinetic. Reduce StandUp +x offset to 0.3M. (diff)
parentMerge branch 'master' into careminster-presence-refactor (diff)
downloadopensim-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.cs35
-rw-r--r--OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs2
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))