Revert "Revert "refactor: make llGiveInventory() use existing GetInventoryItem() method rather than iterate through TaskInventory itself.""
This reverts commit 59a29f5f22.
The original revert was committed by mistake - it turns out this was not the cause of Mantis 6089
Conflicts:
	OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
			
			
				0.7.4.1
			
			
		
							parent
							
								
									ecb759c1e5
								
							
						
					
					
						commit
						48a5f10be1
					
				| 
						 | 
				
			
			@ -3925,11 +3925,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
 | 
			
		|||
        public void llGiveInventory(string destination, string inventory)
 | 
			
		||||
        {
 | 
			
		||||
            m_host.AddScriptLPS(1);
 | 
			
		||||
            bool found = false;
 | 
			
		||||
 | 
			
		||||
            UUID destId = UUID.Zero;
 | 
			
		||||
            UUID objId = UUID.Zero;
 | 
			
		||||
            int assetType = 0;
 | 
			
		||||
            string objName = String.Empty;
 | 
			
		||||
 | 
			
		||||
            if (!UUID.TryParse(destination, out destId))
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -3937,28 +3934,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
 | 
			
		|||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // move the first object found with this inventory name
 | 
			
		||||
            lock (m_host.TaskInventory)
 | 
			
		||||
            {
 | 
			
		||||
                foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
 | 
			
		||||
                {
 | 
			
		||||
                    if (inv.Value.Name == inventory)
 | 
			
		||||
                    {
 | 
			
		||||
                        found = true;
 | 
			
		||||
                        objId = inv.Key;
 | 
			
		||||
                        assetType = inv.Value.Type;
 | 
			
		||||
                        objName = inv.Value.Name;
 | 
			
		||||
                        break;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            TaskInventoryItem item = m_host.Inventory.GetInventoryItem(inventory);
 | 
			
		||||
 | 
			
		||||
            if (!found)
 | 
			
		||||
            if (item == null)
 | 
			
		||||
            {
 | 
			
		||||
                llSay(0, String.Format("Could not find object '{0}'", inventory));
 | 
			
		||||
                throw new Exception(String.Format("The inventory object '{0}' could not be found", inventory));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            UUID objId = item.ItemID;
 | 
			
		||||
 | 
			
		||||
            // check if destination is an object
 | 
			
		||||
            if (World.GetSceneObjectPart(destId) != null)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -3990,14 +3975,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
 | 
			
		|||
 | 
			
		||||
                if (m_TransferModule != null)
 | 
			
		||||
                {
 | 
			
		||||
                    byte[] bucket = new byte[] { (byte)assetType };
 | 
			
		||||
                    
 | 
			
		||||
                    byte[] bucket = new byte[] { (byte)item.Type };
 | 
			
		||||
 | 
			
		||||
                    GridInstantMessage msg = new GridInstantMessage(World,
 | 
			
		||||
                            m_host.UUID, m_host.Name + ", an object owned by " +
 | 
			
		||||
                            resolveName(m_host.OwnerID) + ",", destId,
 | 
			
		||||
                            (byte)InstantMessageDialog.TaskInventoryOffered,
 | 
			
		||||
                            false, objName + "\n" + m_host.Name + " is located at " +
 | 
			
		||||
                            World.RegionInfo.RegionName + " " +
 | 
			
		||||
                            false, item.Name + "\n" + m_host.Name + " is located at " +
 | 
			
		||||
                            World.RegionInfo.RegionName+" "+
 | 
			
		||||
                            m_host.AbsolutePosition.ToString(),
 | 
			
		||||
                            agentItem.ID, true, m_host.AbsolutePosition,
 | 
			
		||||
                            bucket);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue