From d58dd334e9bbeb6bd586ced69447a008e9c43647 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 30 Sep 2021 22:16:42 +0100 Subject: [PATCH] add a missing hack on temp attachments --- .../ClientStack/Linden/UDP/LLClientView.cs | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index cbb26e7c20..c3a318327d 100755 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -4776,7 +4776,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP SceneObjectGroup g = p.ParentGroup; if (g.HasPrivateAttachmentPoint && g.OwnerID != AgentId) return; // Don't send updates for other people's HUDs - + if((updateFlags ^ PrimUpdateFlags.SendInTransit) == 0) { List partIDs = (new List {p.LocalId}); @@ -7245,7 +7245,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (part.ParentGroup.IsAttachment) { if (part.IsRoot) - nv = Util.StringToBytes256("AttachItemID STRING RW SV " + part.ParentGroup.FromItemID); + { + UUID fromID = part.ParentGroup.FromItemID; + if(fromID == UUID.Zero) + fromID = part.UUID; + nv = Util.StringToBytes256("AttachItemID STRING RW SV " + fromID.ToString()); + } int st = (int)part.ParentGroup.AttachmentPoint; state = (byte)(((st & 0xf0) >> 4) + ((st & 0x0f) << 4)); ; @@ -7486,7 +7491,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (part.ParentGroup.IsAttachment) { if (part.IsRoot) - nv = Util.StringToBytes256("AttachItemID STRING RW SV " + part.ParentGroup.FromItemID); + { + UUID fromID = part.ParentGroup.FromItemID; + if (fromID == UUID.Zero) + fromID = part.UUID; + nv = Util.StringToBytes256("AttachItemID STRING RW SV " + fromID.ToString()); + } int st = (int)part.ParentGroup.AttachmentPoint; state = (byte)(((st & 0xf0) >> 4) + ((st & 0x0f) << 4)); ; @@ -7758,8 +7768,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (part.ParentGroup.IsAttachment) { if (part.IsRoot) - nv = Util.StringToBytes256("AttachItemID STRING RW SV " + part.ParentGroup.FromItemID); - + { + UUID fromID = part.ParentGroup.FromItemID; + if (fromID == UUID.Zero) + fromID = part.UUID; + nv = Util.StringToBytes256("AttachItemID STRING RW SV " + fromID.ToString()); + } int st = (int)part.ParentGroup.AttachmentPoint; state = (byte)(((st & 0xf0) >> 4) + ((st & 0x0f) << 4)); ; }