mantis 8419: TakeCopy now sends to objects; Take to a child of trash or lostandfound also, else goes to original folder
parent
043a213302
commit
6297717399
|
@ -748,20 +748,35 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (action == DeRezAction.TakeCopy)
|
||||||
|
folder = m_Scene.InventoryService.GetFolderForType(userID, FolderType.Object);
|
||||||
|
else if (action == DeRezAction.Take)
|
||||||
|
{
|
||||||
// Override and put into where it came from, if it came
|
// Override and put into where it came from, if it came
|
||||||
// from anywhere in inventory and the owner is taking it back.
|
// from anywhere in inventory and the owner is taking it back.
|
||||||
//
|
|
||||||
if (action == DeRezAction.Take || action == DeRezAction.TakeCopy)
|
|
||||||
{
|
|
||||||
if (so.FromFolderID != UUID.Zero && so.RootPart.OwnerID == remoteClient.AgentId)
|
if (so.FromFolderID != UUID.Zero && so.RootPart.OwnerID == remoteClient.AgentId)
|
||||||
{
|
{
|
||||||
folder = m_Scene.InventoryService.GetFolder(userID, so.FromFolderID);
|
folder = m_Scene.InventoryService.GetFolder(userID, so.FromFolderID);
|
||||||
|
|
||||||
if(folder.Type == (int)FolderType.Trash || folder.Type == (int)FolderType.LostAndFound)
|
if(folder == null || folder.Type == (int)FolderType.Trash || folder.Type == (int)FolderType.LostAndFound)
|
||||||
{
|
{
|
||||||
// folder.Type = 6;
|
|
||||||
folder = m_Scene.InventoryService.GetFolderForType(userID, FolderType.Object);
|
folder = m_Scene.InventoryService.GetFolderForType(userID, FolderType.Object);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
InventoryFolderBase parent = folder;
|
||||||
|
while(true)
|
||||||
|
{
|
||||||
|
parent = m_Scene.InventoryService.GetFolder(userID, parent.ParentID);
|
||||||
|
if (parent != null && parent.ParentID == UUID.Zero)
|
||||||
|
break;
|
||||||
|
if (parent == null || parent.Type == (int)FolderType.Trash || parent.Type == (int)FolderType.LostAndFound)
|
||||||
|
{
|
||||||
|
folder = m_Scene.InventoryService.GetFolderForType(userID, FolderType.Object);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue