From a9cc76e0efba7496909d613c75b81de6a9c5d979 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Wed, 30 Apr 2008 16:08:24 +0000 Subject: * Long awaited patch from A_Biondi Mantis 923. Kept alive by Melanie. Thanks A_Biondi and Melanie! * This builds but might not work. JustinCC will examine.. it may work out of the box. --- .../Environment/Modules/AgentAssetsTransactions.cs | 3 ++ .../Region/Environment/Scenes/Scene.Inventory.cs | 33 ++++++++++++++++++---- 2 files changed, 31 insertions(+), 5 deletions(-) (limited to 'OpenSim/Region/Environment') diff --git a/OpenSim/Region/Environment/Modules/AgentAssetsTransactions.cs b/OpenSim/Region/Environment/Modules/AgentAssetsTransactions.cs index 4d2ec5b..9fa173d 100644 --- a/OpenSim/Region/Environment/Modules/AgentAssetsTransactions.cs +++ b/OpenSim/Region/Environment/Modules/AgentAssetsTransactions.cs @@ -150,6 +150,7 @@ namespace OpenSim.Region.Environment.Modules private string m_description = String.Empty; private sbyte type = 0; private sbyte invType = 0; + private byte wearableType = 0; private uint nextPerm = 0; private bool m_finished = false; private bool m_createItem = false; @@ -314,6 +315,7 @@ namespace OpenSim.Region.Environment.Modules m_description = description; this.type = type; this.invType = invType; + this.wearableType = wearableType; nextPerm = nextOwnerMask; Asset.Name = name; Asset.Description = description; @@ -386,6 +388,7 @@ namespace OpenSim.Region.Environment.Modules item.BasePermissions = 2147483647; item.CurrentPermissions = 2147483647; item.NextPermissions = nextPerm; + item.Flags = (uint)wearableType; userInfo.AddItem(ourClient.AgentId, item); ourClient.SendInventoryItemCreateUpdate(item); diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index d41ede1..7e1b89f 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs @@ -260,9 +260,11 @@ namespace OpenSim.Region.Environment.Scenes /// The name of the updated item /// The description of the updated item /// The permissions of the updated item - public void UpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, +/* public void UpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, LLUUID itemID, string name, string description, - uint nextOwnerMask) + uint nextOwnerMask)*/ + public void UpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, + LLUUID itemID, InventoryItemBase itemUpd) { CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); @@ -275,9 +277,22 @@ namespace OpenSim.Region.Environment.Scenes { if (LLUUID.Zero == transactionID) { - item.Name = name; - item.Description = description; - item.NextPermissions = nextOwnerMask; + item.Name = itemUpd.Name; + item.Description = itemUpd.Description; + item.NextPermissions = itemUpd.NextPermissions; + item.EveryOnePermissions = itemUpd.EveryOnePermissions; + + // TODO: Requires sanity checks + //item.GroupID = itemUpd.GroupID; + //item.GroupOwned = itemUpd.GroupOwned; + //item.CreationDate = itemUpd.CreationDate; + + // TODO: Check if folder changed and move item + //item.NextPermissions = itemUpd.Folder; + item.InvType = itemUpd.InvType; + item.SalePrice = itemUpd.SalePrice; + item.SaleType = itemUpd.SaleType; + item.Flags = itemUpd.Flags; userInfo.UpdateItem(remoteClient.AgentId, item); } @@ -351,6 +366,12 @@ namespace OpenSim.Region.Environment.Scenes itemCopy.BasePermissions = item.BasePermissions; itemCopy.CurrentPermissions = item.CurrentPermissions; + itemCopy.GroupID = item.GroupID; + itemCopy.GroupOwned = item.GroupOwned; + itemCopy.Flags = item.Flags; + itemCopy.SalePrice = item.SalePrice; + itemCopy.SaleType = item.SaleType; + recipientUserInfo.AddItem(recipientClient.AgentId, itemCopy); // Let the recipient client know about this new item @@ -988,6 +1009,8 @@ namespace OpenSim.Region.Environment.Scenes item.NextPermissions = objectGroup.RootPart.NextOwnerMask; } + // TODO: add the new fields (Flags, Sale info, etc) + userInfo.AddItem(remoteClient.AgentId, item); remoteClient.SendInventoryItemCreateUpdate(item); } -- cgit v1.1