From 1aa7bea608301021e8dc7c52779b14df5fe171d6 Mon Sep 17 00:00:00 2001 From: Jeff Kelley Date: Sat, 23 Mar 2024 19:20:13 +0000 Subject: [PATCH 1/5] osGetLinkInventoryAssetKey deleted: bin/System.Drawing.Common.dll Signed-off-by: UbitUmarov --- .../Shared/Api/Implementation/OSSL_Api.cs | 20 +++++++++++++++++++ .../Shared/Api/Interface/IOSSL_Api.cs | 1 + .../Shared/Api/Runtime/OSSL_Stub.cs | 6 ++++++ bin/ScriptSyntax.xml | 11 +++++++++- 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index ecef4ac1b2..77bf8a3230 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -5541,6 +5541,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return (item == null) ? LSL_String.Empty : item.Description; } + public LSL_Key osGetLinkInventoryAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) + { + SceneObjectPart part = GetSingleLinkPart(linkNumber); + if(part == null) + return LSL_String.NullKey; + + TaskInventoryItem item = part.Inventory.GetInventoryItem(name, type); + if (item is null) + return LSL_String.NullKey; + + if ((item.CurrentPermissions + & (uint)(PermissionMask.Copy | PermissionMask.Transfer | PermissionMask.Modify)) + == (uint)(PermissionMask.Copy | PermissionMask.Transfer | PermissionMask.Modify)) + { + return new LSL_Key(item.AssetID.ToString()); + } + + return LSL_String.NullKey; + } + public LSL_Key osGetLinkInventoryItemKey(LSL_Integer linkNumber, LSL_String name) { SceneObjectPart part = GetSingleLinkPart(linkNumber); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index fb7ad789dc..622bededf1 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -561,6 +561,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces LSL_Integer osApproxEquals(rotation ra, rotation rb, LSL_Float margin); LSL_Key osGetInventoryLastOwner(LSL_String itemNameOrId); LSL_Key osGetInventoryItemKey(LSL_String name); + LSL_Key osGetLinkInventoryAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type); LSL_Key osGetLinkInventoryItemKey(LSL_Integer linkNumber, LSL_String name); LSL_String osGetInventoryName(LSL_Key itemId); LSL_String osGetLinkInventoryName(LSL_Integer linkNumber, LSL_Key itemId); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 2fb00ce47a..d25722c43c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -1460,6 +1460,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase return m_OSSL_Functions.osGetInventoryItemKey(name); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public LSL_Key osGetLinkInventoryAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) + { + return m_OSSL_Functions.osGetLinkInventoryAssetKey(linkNumber, name, type); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public LSL_Key osGetLinkInventoryItemKey(LSL_Integer linkNumber, LSL_String name) { diff --git a/bin/ScriptSyntax.xml b/bin/ScriptSyntax.xml index 0adf4a5888..7fd233bd84 100644 --- a/bin/ScriptSyntax.xml +++ b/bin/ScriptSyntax.xml @@ -1,4 +1,4 @@ -3c8d15ee-d2ba-11ee-ae64-406c8fbbb495 +9a2d5a5e-484a-40b0-82bc-092443b08ff7 llsd-lsl-syntax-version2 controls @@ -7318,6 +7318,15 @@ nametypestring +osGetLinkInventoryAssetKey + + returnkey + arguments + linkNumbertypeinteger + nametypestring + typetypeinteger + + osGetLinkInventoryItemKey returnkey From 7c63ff11509110398910df94cfe4b023b331c7e4 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 24 Mar 2024 11:34:23 +0000 Subject: [PATCH 2/5] rename new osGetLinkInventoryItemKey as osGetLinkInventoryItemAssetKey --- .../ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 2 +- .../Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 4 ++-- OpenSim/Region/ScriptEngine/Shared/Helpers.cs | 6 +----- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 77bf8a3230..f89430a0b7 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -5541,7 +5541,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return (item == null) ? LSL_String.Empty : item.Description; } - public LSL_Key osGetLinkInventoryAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) + public LSL_Key osGetLinkInventoryItemAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) { SceneObjectPart part = GetSingleLinkPart(linkNumber); if(part == null) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index 622bededf1..e0cfe81945 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -561,7 +561,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces LSL_Integer osApproxEquals(rotation ra, rotation rb, LSL_Float margin); LSL_Key osGetInventoryLastOwner(LSL_String itemNameOrId); LSL_Key osGetInventoryItemKey(LSL_String name); - LSL_Key osGetLinkInventoryAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type); + LSL_Key osGetLinkInventoryItemAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type); LSL_Key osGetLinkInventoryItemKey(LSL_Integer linkNumber, LSL_String name); LSL_String osGetInventoryName(LSL_Key itemId); LSL_String osGetLinkInventoryName(LSL_Integer linkNumber, LSL_Key itemId); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index d25722c43c..bd6148c241 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -1461,9 +1461,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase } [MethodImpl(MethodImplOptions.AggressiveInlining)] - public LSL_Key osGetLinkInventoryAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) + public LSL_Key osGetLinkInventoryItemAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) { - return m_OSSL_Functions.osGetLinkInventoryAssetKey(linkNumber, name, type); + return m_OSSL_Functions.osGetLinkInventoryItemAssetKey(linkNumber, name, type); } [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/OpenSim/Region/ScriptEngine/Shared/Helpers.cs b/OpenSim/Region/ScriptEngine/Shared/Helpers.cs index c6fcf89445..38d9881168 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Helpers.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Helpers.cs @@ -202,11 +202,7 @@ namespace OpenSim.Region.ScriptEngine.Shared Owner = Key; Position = new LSL_Types.Vector3(presence.AbsolutePosition); - Rotation = new LSL_Types.Quaternion( - presence.Rotation.X, - presence.Rotation.Y, - presence.Rotation.Z, - presence.Rotation.W); + Rotation = new LSL_Types.Quaternion(presence.Rotation); Velocity = new LSL_Types.Vector3(presence.Velocity); Type = 0x01; // Avatar From 4a8d4414bd158d9387dc4ada36f46d5440d9653f Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 24 Mar 2024 12:11:42 +0000 Subject: [PATCH 3/5] let runprebuild.bat also copy system drawing for windows --- runprebuild.bat | 2 ++ 1 file changed, 2 insertions(+) diff --git a/runprebuild.bat b/runprebuild.bat index dc840b4f36..e8cd98c35f 100755 --- a/runprebuild.bat +++ b/runprebuild.bat @@ -8,6 +8,8 @@ rem To compile in debug mode rem To compile in release mode comment line (add rem to start) above and uncomment next (remove rem) rem @echo dotnet build --configuration Debug OpenSim.sln > compile.bat :done +copy bin\System.Drawing.Common.dll.win bin\System.Drawing.Common.dll + if exist "bin\addin-db-002" ( del /F/Q/S bin\addin-db-002 > NUL rmdir /Q/S bin\addin-db-002 From 782bad994446b473b33e8b32ae4954418c5270a8 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 26 Mar 2024 18:32:05 +0000 Subject: [PATCH 4/5] and rename it again as just osGetLinkInventoryKey, so it is coerent with llGetInventoryKey (mantis 9119) --- .../Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index f89430a0b7..0479fd33b0 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -5541,7 +5541,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return (item == null) ? LSL_String.Empty : item.Description; } - public LSL_Key osGetLinkInventoryItemAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) + public LSL_Key osGetLinkInventoryKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) { SceneObjectPart part = GetSingleLinkPart(linkNumber); if(part == null) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index e0cfe81945..72af1bc870 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -561,7 +561,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces LSL_Integer osApproxEquals(rotation ra, rotation rb, LSL_Float margin); LSL_Key osGetInventoryLastOwner(LSL_String itemNameOrId); LSL_Key osGetInventoryItemKey(LSL_String name); - LSL_Key osGetLinkInventoryItemAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type); + LSL_Key osGetLinkInventoryKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type); LSL_Key osGetLinkInventoryItemKey(LSL_Integer linkNumber, LSL_String name); LSL_String osGetInventoryName(LSL_Key itemId); LSL_String osGetLinkInventoryName(LSL_Integer linkNumber, LSL_Key itemId); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index bd6148c241..d40fab9a57 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -1461,9 +1461,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase } [MethodImpl(MethodImplOptions.AggressiveInlining)] - public LSL_Key osGetLinkInventoryItemAssetKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) + public LSL_Key osGetLinkInventoryKey(LSL_Integer linkNumber, LSL_String name, LSL_Integer type) { - return m_OSSL_Functions.osGetLinkInventoryItemAssetKey(linkNumber, name, type); + return m_OSSL_Functions.osGetLinkInventoryKey(linkNumber, name, type); } [MethodImpl(MethodImplOptions.AggressiveInlining)] From acbec23f4867581abe08130c3946ed17ba154c3e Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 26 Mar 2024 21:34:33 +0000 Subject: [PATCH 5/5] clean appdomain related things --- .../Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs | 2 +- .../Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs | 2 +- .../Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Api/Runtime/MOD_Stub.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 1f7443a27c..b305802228 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -79,7 +79,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// /// Contains all LSL ll-functions. This class will be in Default AppDomain. /// - public class LSL_Api : MarshalByRefObject, ILSL_Api, IScriptApi + public class LSL_Api : ILSL_Api, IScriptApi { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs index 2e1a55e6f7..c9f50ced2f 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs @@ -54,7 +54,7 @@ using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3; namespace OpenSim.Region.ScriptEngine.Shared.Api { [Serializable] - public class LS_Api : MarshalByRefObject, ILS_Api, IScriptApi + public class LS_Api : ILS_Api, IScriptApi { internal IScriptEngine m_ScriptEngine; internal SceneObjectPart m_host; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs index f068d873fe..67eba37d43 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs @@ -54,7 +54,7 @@ using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3; namespace OpenSim.Region.ScriptEngine.Shared.Api { [Serializable] - public class MOD_Api : MarshalByRefObject, IMOD_Api, IScriptApi + public class MOD_Api : IMOD_Api, IScriptApi { // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 0479fd33b0..7ea1e5f8c9 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -134,7 +134,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api } [Serializable] - public class OSSL_Api : MarshalByRefObject, IOSSL_Api, IScriptApi + public class OSSL_Api : IOSSL_Api, IScriptApi { public const string GridInfoServiceConfigSectionName = "GridInfoService"; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs index f8bc0526bd..ed392758b5 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs @@ -43,7 +43,7 @@ using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3; namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { - public partial class ScriptBaseClass : MarshalByRefObject + public partial class ScriptBaseClass { public ILSL_Api m_LSL_Functions; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs index cc7a285ff4..820dcfce85 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs @@ -45,7 +45,7 @@ using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger; namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { - public partial class ScriptBaseClass : MarshalByRefObject + public partial class ScriptBaseClass { public ILS_Api m_LS_Functions; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/MOD_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/MOD_Stub.cs index 703924d348..aebf9c9636 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/MOD_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/MOD_Stub.cs @@ -49,7 +49,7 @@ using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3; namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { - public partial class ScriptBaseClass : MarshalByRefObject + public partial class ScriptBaseClass { public IMOD_Api m_MOD_Functions; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index d40fab9a57..7895b02332 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -44,7 +44,7 @@ using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger; namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { - public partial class ScriptBaseClass : MarshalByRefObject + public partial class ScriptBaseClass { public IOSSL_Api m_OSSL_Functions; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs index 36fabcb306..f99d858a1c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs @@ -33,7 +33,7 @@ using OpenSim.Region.ScriptEngine.Interfaces; namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { - public partial class ScriptBaseClass : MarshalByRefObject, IScript + public partial class ScriptBaseClass : IScript { private Dictionary inits = new Dictionary(); public ScriptBaseClass()