diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index cdd50d0222..f02543d3eb 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -53,8 +53,7 @@ namespace OpenSim.Framework public delegate ISceneEntity RezSingleAttachmentFromInv(IClientAPI remoteClient, UUID itemID, uint AttachmentPt); - public delegate void RezMultipleAttachmentsFromInv(IClientAPI remoteClient, RezMultipleAttachmentsFromInvPacket.HeaderDataBlock header, - RezMultipleAttachmentsFromInvPacket.ObjectDataBlock[] objects); + public delegate void RezMultipleAttachmentsFromInv(IClientAPI remoteClient, List> rezlist ); public delegate void ObjectAttach( IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, bool silent); diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 243dad5e7c..575e5a2929 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -6145,9 +6145,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP RezMultipleAttachmentsFromInv handlerRezMultipleAttachments = OnRezMultipleAttachmentsFromInv; if (handlerRezMultipleAttachments != null) { - RezMultipleAttachmentsFromInvPacket rez = (RezMultipleAttachmentsFromInvPacket)Pack; - handlerRezMultipleAttachments(this, rez.HeaderData, - rez.ObjectData); + List> rezlist = new List>(); + foreach (RezMultipleAttachmentsFromInvPacket.ObjectDataBlock obj in ((RezMultipleAttachmentsFromInvPacket)Pack).ObjectData) + rezlist.Add(new KeyValuePair(obj.ItemID, obj.AttachmentPt)); + handlerRezMultipleAttachments(this, rezlist); } return true; diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 3bdb173be3..b58a1afbb5 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs @@ -368,8 +368,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments public void RezMultipleAttachmentsFromInventory( IClientAPI remoteClient, - RezMultipleAttachmentsFromInvPacket.HeaderDataBlock header, - RezMultipleAttachmentsFromInvPacket.ObjectDataBlock[] objects) + List> rezlist) { if (!Enabled) return; @@ -388,9 +387,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments { // m_log.DebugFormat("[ATTACHMENTS MODULE]: Rezzing multiple attachments from inventory for {0}", sp.Name); - foreach (RezMultipleAttachmentsFromInvPacket.ObjectDataBlock obj in objects) + foreach (KeyValuePair rez in rezlist) { - RezSingleAttachmentFromInventory(sp, obj.ItemID, obj.AttachmentPt); + RezSingleAttachmentFromInventory(sp, rez.Key, rez.Value); } } } diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs index d1b7dc1b24..d7f0a9636a 100644 --- a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs @@ -27,6 +27,7 @@ using System; using System.Xml; +using System.Collections.Generic; using OpenMetaverse; using OpenMetaverse.Packets; using OpenSim.Framework; @@ -109,8 +110,7 @@ namespace OpenSim.Region.Framework.Interfaces /// void RezMultipleAttachmentsFromInventory( IClientAPI remoteClient, - RezMultipleAttachmentsFromInvPacket.HeaderDataBlock header, - RezMultipleAttachmentsFromInvPacket.ObjectDataBlock[] objects); + List> rezlist); /// /// Detach an object from the avatar.