From 5ee2e38c11785e9b68ecf1767af7a4ea5b13b7c7 Mon Sep 17 00:00:00 2001
From: MW
Date: Sun, 29 Jul 2007 13:05:57 +0000
Subject: Deleting objects should now work. But beware they aren't send to your
trash folder or anything so there is at the moment no way to recover deleted
objects.
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 38 +++++++++++++++++++++-
1 file changed, 37 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 70bd003..a90c5ff 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -217,7 +217,42 @@ namespace OpenSim.Region.Environment.Scenes
///
public void DeRezObject(Packet packet, IClientAPI simClient)
{
+ DeRezObjectPacket DeRezPacket = (DeRezObjectPacket)packet;
+
+ if (DeRezPacket.AgentBlock.DestinationID == LLUUID.Zero)
+ {
+ //currently following code not used (or don't know of any case of destination being zero
+ }
+ else
+ {
+ foreach (DeRezObjectPacket.ObjectDataBlock Data in DeRezPacket.ObjectData)
+ {
+ EntityBase selectedEnt = null;
+ //OpenSim.Framework.Console.MainConsole.Instance.WriteLine("LocalID:" + Data.ObjectLocalID.ToString());
+ foreach (EntityBase ent in this.Entities.Values)
+ {
+ if (ent.LocalId == Data.ObjectLocalID)
+ {
+ selectedEnt = ent;
+ break;
+ }
+ }
+ if (selectedEnt != null)
+ {
+ List avatars = this.RequestAvatarList();
+ foreach (ScenePresence avatar in avatars)
+ {
+ avatar.ControllingClient.SendKillObject(this.m_regionHandle, selectedEnt.LocalId);
+ }
+
+ lock (Entities)
+ {
+ Entities.Remove(selectedEnt.m_uuid);
+ }
+ }
+ }
+ }
}
///
@@ -678,7 +713,7 @@ namespace OpenSim.Region.Environment.Scenes
asset.InvType = invType;
asset.Type = type;
asset.FullID = LLUUID.Random();
- asset.Data = new byte[0];
+ asset.Data = new byte[1];
this.assetCache.AddAsset(asset);
InventoryItemBase item = new InventoryItemBase();
@@ -689,6 +724,7 @@ namespace OpenSim.Region.Environment.Scenes
item.inventoryDescription = description;
item.inventoryName = name;
item.assetType = invType;
+ item.invType = invType;
item.parentFolderID = folderID;
item.inventoryCurrentPermissions = 2147483647;
item.inventoryNextPermissions = nextOwnerMask;
--
cgit v1.1