diff options
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index d87b930..b479fed 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -46,6 +46,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
46 | public IClientAPI remoteClient; | 46 | public IClientAPI remoteClient; |
47 | public SceneObjectGroup objectGroup; | 47 | public SceneObjectGroup objectGroup; |
48 | public LLUUID folderID; | 48 | public LLUUID folderID; |
49 | public bool permissionToDelete; | ||
49 | } | 50 | } |
50 | 51 | ||
51 | public partial class Scene | 52 | public partial class Scene |
@@ -1505,6 +1506,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1505 | dtis.objectGroup = objectGroup; | 1506 | dtis.objectGroup = objectGroup; |
1506 | dtis.remoteClient = remoteClient; | 1507 | dtis.remoteClient = remoteClient; |
1507 | dtis.selectedEnt = selectedEnt; | 1508 | dtis.selectedEnt = selectedEnt; |
1509 | dtis.permissionToDelete = permissionToDelete; | ||
1508 | 1510 | ||
1509 | m_inventoryDeletes.Enqueue(dtis); | 1511 | m_inventoryDeletes.Enqueue(dtis); |
1510 | } | 1512 | } |
@@ -1512,7 +1514,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1512 | m_inventoryTicker.Start(); | 1514 | m_inventoryTicker.Start(); |
1513 | 1515 | ||
1514 | // Visually remove it, even if it isnt really gone yet. | 1516 | // Visually remove it, even if it isnt really gone yet. |
1515 | objectGroup.FakeDeleteGroup(); | 1517 | if (permissionToDelete) |
1518 | objectGroup.FakeDeleteGroup(); | ||
1516 | } | 1519 | } |
1517 | else if (permissionToDelete) | 1520 | else if (permissionToDelete) |
1518 | { | 1521 | { |
@@ -1543,7 +1546,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1543 | { | 1546 | { |
1544 | m_log.InfoFormat("Sending deleted object to user's inventory, {0} item(s) remaining.", left); | 1547 | m_log.InfoFormat("Sending deleted object to user's inventory, {0} item(s) remaining.", left); |
1545 | x = m_inventoryDeletes.Dequeue(); | 1548 | x = m_inventoryDeletes.Dequeue(); |
1546 | DeleteToInventory(x.DeRezPacket, x.selectedEnt, x.remoteClient, x.objectGroup, x.folderID); | 1549 | DeleteToInventory(x.DeRezPacket, x.selectedEnt, x.remoteClient, x.objectGroup, x.folderID, x.permissionToDelete); |
1547 | return true; | 1550 | return true; |
1548 | } | 1551 | } |
1549 | } | 1552 | } |
@@ -1556,7 +1559,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1556 | return false; | 1559 | return false; |
1557 | } | 1560 | } |
1558 | 1561 | ||
1559 | private void DeleteToInventory(DeRezObjectPacket DeRezPacket, EntityBase selectedEnt, IClientAPI remoteClient, SceneObjectGroup objectGroup, LLUUID folderID) | 1562 | private void DeleteToInventory(DeRezObjectPacket DeRezPacket, EntityBase selectedEnt, IClientAPI remoteClient, SceneObjectGroup objectGroup, LLUUID folderID, bool permissionToDelete) |
1560 | { | 1563 | { |
1561 | string sceneObjectXml = objectGroup.ToXmlString(); | 1564 | string sceneObjectXml = objectGroup.ToXmlString(); |
1562 | 1565 | ||
@@ -1662,7 +1665,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1662 | } | 1665 | } |
1663 | 1666 | ||
1664 | // Finally remove the item, for reals this time. | 1667 | // Finally remove the item, for reals this time. |
1665 | DeleteSceneObject(objectGroup); | 1668 | if(permissionToDelete) |
1669 | DeleteSceneObject(objectGroup); | ||
1666 | } | 1670 | } |
1667 | 1671 | ||
1668 | public void updateKnownAsset(IClientAPI remoteClient, SceneObjectGroup grp, LLUUID assetID, LLUUID agentID) | 1672 | public void updateKnownAsset(IClientAPI remoteClient, SceneObjectGroup grp, LLUUID assetID, LLUUID agentID) |