From 004cab92892885af043de078e0a48939926dbe45 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 25 Jan 2020 14:24:53 +0000 Subject: [PATCH] add osGetLinkSitActiveRange --- .../Shared/Api/Implementation/OSSL_Api.cs | 14 ++++++++++++++ .../ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 1 + .../ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 5 +++++ 3 files changed, 20 insertions(+) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index d6748d6dbc..aa38b77606 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -5711,6 +5711,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return m_host.SitActiveRange; } + public LSL_Float osGetLinkSitActiveRange(LSL_Integer linkNumber) + { + if (linkNumber == ScriptBaseClass.LINK_THIS) + return m_host.SitActiveRange; + if (linkNumber < 0) + return int.MinValue; + if (linkNumber < 2) + return m_host.ParentGroup.RootPart.SitActiveRange; + SceneObjectPart target = m_host.ParentGroup.GetLinkNumPart(linkNumber); + if (target == null) + return int.MinValue; + return target.SitActiveRange; + } + public void osSetStandTarget(LSL_Vector v) { // todo add limits ? diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index ff1da2e6fa..5b7cb50a2f 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -563,6 +563,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces void osSetSitActiveRange(LSL_Float v); void osSetLinkSitActiveRange(LSL_Integer linkNumber, LSL_Float v); LSL_Float osGetSitActiveRange(); + LSL_Float osGetLinkSitActiveRange(LSL_Integer linkNumber); void osSetStandTarget(vector v); vector osGetStandTarget(); } diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 292ce062e2..3a304c8634 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -1437,6 +1437,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase return m_OSSL_Functions.osGetSitActiveRange(); } + public LSL_Float osGetLinkSitActiveRange(LSL_Integer linkNumber) + { + return m_OSSL_Functions.osGetLinkSitActiveRange(linkNumber); + } + public void osSetStandTarget(vector v) { m_OSSL_Functions.osSetStandTarget(v);