From e31ad4869c68ebae0e315aab77953c62fbf14ac5 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 7 Feb 2024 01:37:40 +0000 Subject: [PATCH] copy linksetdata when doing a sog copy.. --- OpenSim/Region/Framework/Scenes/LinksetData.cs | 14 +++----------- .../Region/Framework/Scenes/SceneObjectGroup.cs | 3 +++ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/LinksetData.cs b/OpenSim/Region/Framework/Scenes/LinksetData.cs index de2a142912..f450fc2a8f 100644 --- a/OpenSim/Region/Framework/Scenes/LinksetData.cs +++ b/OpenSim/Region/Framework/Scenes/LinksetData.cs @@ -25,12 +25,10 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -using OpenMetaverse; using System; using System.Collections.Generic; using System.Runtime.CompilerServices; //using log4net; -using System.Text; using System.Text.Json; using System.Text.RegularExpressions; @@ -74,13 +72,10 @@ namespace OpenSim.Region.Framework.Scenes } /// - /// Adds or updates a entry to linkset data + /// Adds or updates a entry to linkset data with optional password /// /// - /// 0 if the data was successfully added or updated - /// 1 if the data could not be added or updated due to memory - /// 3 if the password did not match - /// 5 if the data is unchanged + /// return values must match values expected by LSL /// public int AddOrUpdate(string key, string value, string pass) { @@ -165,9 +160,7 @@ namespace OpenSim.Region.Framework.Scenes /// The key value we're removing /// The password for a protected field (or string.Empty if not protected) /// - /// 0 if successful. - /// 1 if not due to the password. - /// -1 if no such key was found + /// return values must match values expected by LSL /// public int Remove(string key, string pass) { @@ -389,7 +382,6 @@ namespace OpenSim.Region.Framework.Scenes /// /// Merge the linksetData present in another Linkset into this one. - /// The current root will have the new linkset for the merged sog. /// If a key is present in our linksetData it wins, dont overide it. /// /// diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 52a9ba3021..fec6f3bb03 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -2527,6 +2527,9 @@ namespace OpenSim.Region.Framework.Scenes // new group as no sitting avatars dupe.m_sittingAvatars = new List(); + if(LinksetData is not null) + dupe.LinksetData = LinksetData.Copy(); + dupe.CopyRootPart(m_rootPart, OwnerID, GroupID, userExposed); dupe.m_rootPart.LinkNum = m_rootPart.LinkNum;