From bca7ab7e363e9c9874a9ab137b60a042b9d1139c Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Wed, 23 Apr 2008 11:52:25 +0000 Subject: * Applying Mantis #1020 (Animations) - Thanks Melanie. --- .../Scenes/SceneObjectPart.Inventory.cs | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs') diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs index 72f78f3..9b99df7 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs @@ -233,6 +233,33 @@ namespace OpenSim.Region.Environment.Scenes } } + // Assumes a lock is held on the inventory + private bool InventoryContainsName(string name) + { + foreach (TaskInventoryItem item in m_taskInventory.Values) + { + if(item.Name == name) + return true; + } + return false; + } + + private string FindAvailableInventoryName(string name) + { + if(!InventoryContainsName(name)) + return name; + + int suffix=1; + while(suffix < 256) + { + string tryName=String.Format("{0} {1}", name, suffix); + if(!InventoryContainsName(tryName)) + return tryName; + suffix++; + } + return String.Empty; + } + /// /// Add an item to this prim's inventory. /// @@ -243,6 +270,12 @@ namespace OpenSim.Region.Environment.Scenes item.CreationDate = 1000; item.ParentPartID = UUID; + string name=FindAvailableInventoryName(item.Name); + if(name == String.Empty) + return; + + item.Name=name; + lock (m_taskInventory) { m_taskInventory.Add(item.ItemID, item); -- cgit v1.1