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