aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs75
1 files changed, 38 insertions, 37 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index 02d3991..0c5e62d 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -815,54 +815,55 @@ namespace OpenSim.Region.Framework.Scenes
815 if (m_part.ParentGroup.Scene.Permissions.CanEditObjectInventory(m_part.UUID, client.AgentId)) 815 if (m_part.ParentGroup.Scene.Permissions.CanEditObjectInventory(m_part.UUID, client.AgentId))
816 includeAssets = true; 816 includeAssets = true;
817 817
818 m_items.LockItemsForRead(true); 818 lock (m_items)
819
820 foreach (TaskInventoryItem item in m_items.Values)
821 { 819 {
822 UUID ownerID = item.OwnerID; 820 foreach (TaskInventoryItem item in m_items.Values)
823 uint everyoneMask = 0; 821 {
824 uint baseMask = item.BasePermissions; 822 UUID ownerID = item.OwnerID;
825 uint ownerMask = item.CurrentPermissions; 823 uint everyoneMask = 0;
826 uint groupMask = item.GroupPermissions; 824 uint baseMask = item.BasePermissions;
825 uint ownerMask = item.CurrentPermissions;
826 uint groupMask = item.GroupPermissions;
827 827
828 invString.AddItemStart(); 828 invString.AddItemStart();
829 invString.AddNameValueLine("item_id", item.ItemID.ToString()); 829 invString.AddNameValueLine("item_id", item.ItemID.ToString());
830 invString.AddNameValueLine("parent_id", m_part.UUID.ToString()); 830 invString.AddNameValueLine("parent_id", m_part.UUID.ToString());
831 831
832 invString.AddPermissionsStart(); 832 invString.AddPermissionsStart();
833 833
834 invString.AddNameValueLine("base_mask", Utils.UIntToHexString(baseMask)); 834 invString.AddNameValueLine("base_mask", Utils.UIntToHexString(baseMask));
835 invString.AddNameValueLine("owner_mask", Utils.UIntToHexString(ownerMask)); 835 invString.AddNameValueLine("owner_mask", Utils.UIntToHexString(ownerMask));
836 invString.AddNameValueLine("group_mask", Utils.UIntToHexString(groupMask)); 836 invString.AddNameValueLine("group_mask", Utils.UIntToHexString(groupMask));
837 invString.AddNameValueLine("everyone_mask", Utils.UIntToHexString(everyoneMask)); 837 invString.AddNameValueLine("everyone_mask", Utils.UIntToHexString(everyoneMask));
838 invString.AddNameValueLine("next_owner_mask", Utils.UIntToHexString(item.NextPermissions)); 838 invString.AddNameValueLine("next_owner_mask", Utils.UIntToHexString(item.NextPermissions));
839 839
840 invString.AddNameValueLine("creator_id", item.CreatorID.ToString()); 840 invString.AddNameValueLine("creator_id", item.CreatorID.ToString());
841 invString.AddNameValueLine("owner_id", ownerID.ToString()); 841 invString.AddNameValueLine("owner_id", ownerID.ToString());
842 842
843 invString.AddNameValueLine("last_owner_id", item.LastOwnerID.ToString()); 843 invString.AddNameValueLine("last_owner_id", item.LastOwnerID.ToString());
844 844
845 invString.AddNameValueLine("group_id", item.GroupID.ToString()); 845 invString.AddNameValueLine("group_id", item.GroupID.ToString());
846 invString.AddSectionEnd(); 846 invString.AddSectionEnd();
847 847
848 if (includeAssets) 848 if (includeAssets)
849 invString.AddNameValueLine("asset_id", item.AssetID.ToString()); 849 invString.AddNameValueLine("asset_id", item.AssetID.ToString());
850 else 850 else
851 invString.AddNameValueLine("asset_id", UUID.Zero.ToString()); 851 invString.AddNameValueLine("asset_id", UUID.Zero.ToString());
852 invString.AddNameValueLine("type", TaskInventoryItem.Types[item.Type]); 852 invString.AddNameValueLine("type", TaskInventoryItem.Types[item.Type]);
853 invString.AddNameValueLine("inv_type", TaskInventoryItem.InvTypes[item.InvType]); 853 invString.AddNameValueLine("inv_type", TaskInventoryItem.InvTypes[item.InvType]);
854 invString.AddNameValueLine("flags", Utils.UIntToHexString(item.Flags)); 854 invString.AddNameValueLine("flags", Utils.UIntToHexString(item.Flags));
855 855
856 invString.AddSaleStart(); 856 invString.AddSaleStart();
857 invString.AddNameValueLine("sale_type", "not"); 857 invString.AddNameValueLine("sale_type", "not");
858 invString.AddNameValueLine("sale_price", "0"); 858 invString.AddNameValueLine("sale_price", "0");
859 invString.AddSectionEnd(); 859 invString.AddSectionEnd();
860 860
861 invString.AddNameValueLine("name", item.Name + "|"); 861 invString.AddNameValueLine("name", item.Name + "|");
862 invString.AddNameValueLine("desc", item.Description + "|"); 862 invString.AddNameValueLine("desc", item.Description + "|");
863 863
864 invString.AddNameValueLine("creation_date", item.CreationDate.ToString()); 864 invString.AddNameValueLine("creation_date", item.CreationDate.ToString());
865 invString.AddSectionEnd(); 865 invString.AddSectionEnd();
866 }
866 } 867 }
867 868
868 fileData = Utils.StringToBytes(invString.BuildString); 869 fileData = Utils.StringToBytes(invString.BuildString);