diff options
author | Justin Clark-Casey (justincc) | 2014-03-13 00:04:20 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2014-03-13 00:04:20 +0000 |
commit | 873eee543192632a7febb99aa77b53d14d926674 (patch) | |
tree | 24bf475fdabf0dac18a85072a54d9ee1e61a2ef9 | |
parent | Only allow llBreakAllLinks() to work if script has received PERMISSION_CHANGE... (diff) | |
download | opensim-SC-873eee543192632a7febb99aa77b53d14d926674.zip opensim-SC-873eee543192632a7febb99aa77b53d14d926674.tar.gz opensim-SC-873eee543192632a7febb99aa77b53d14d926674.tar.bz2 opensim-SC-873eee543192632a7febb99aa77b53d14d926674.tar.xz |
Implement osForceBreakAllLinks().
Identical to llBreakAllLinks() except that it doesn't require the script to have link permissions.
4 files changed, 25 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index abd8123..2275c37 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3930,6 +3930,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3930 | return; | 3930 | return; |
3931 | } | 3931 | } |
3932 | 3932 | ||
3933 | BreakAllLinks(); | ||
3934 | } | ||
3935 | |||
3936 | public void BreakAllLinks() | ||
3937 | { | ||
3933 | SceneObjectGroup parentPrim = m_host.ParentGroup; | 3938 | SceneObjectGroup parentPrim = m_host.ParentGroup; |
3934 | if (parentPrim.AttachmentPoint != 0) | 3939 | if (parentPrim.AttachmentPoint != 0) |
3935 | return; // Fail silently if attached | 3940 | return; // Fail silently if attached |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index cfc48e9..6302455 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -2350,6 +2350,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2350 | ((LSL_Api)m_LSL_Api).BreakLink(linknum); | 2350 | ((LSL_Api)m_LSL_Api).BreakLink(linknum); |
2351 | } | 2351 | } |
2352 | 2352 | ||
2353 | public void osForceBreakAllLinks() | ||
2354 | { | ||
2355 | CheckThreatLevel(ThreatLevel.VeryLow, "osForceBreakAllLinks"); | ||
2356 | |||
2357 | m_host.AddScriptLPS(1); | ||
2358 | |||
2359 | InitLSL(); | ||
2360 | ((LSL_Api)m_LSL_Api).BreakAllLinks(); | ||
2361 | } | ||
2362 | |||
2353 | public LSL_Integer osIsNpc(LSL_Key npc) | 2363 | public LSL_Integer osIsNpc(LSL_Key npc) |
2354 | { | 2364 | { |
2355 | CheckThreatLevel(ThreatLevel.None, "osIsNpc"); | 2365 | CheckThreatLevel(ThreatLevel.None, "osIsNpc"); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index b5de355..41d13ea 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | |||
@@ -307,6 +307,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
307 | void osForceBreakLink(int linknum); | 307 | void osForceBreakLink(int linknum); |
308 | 308 | ||
309 | /// <summary> | 309 | /// <summary> |
310 | /// Identical to llBreakAllLinks() but does not require permission from the owner. | ||
311 | /// </summary> | ||
312 | void osForceBreakAllLinks(); | ||
313 | |||
314 | /// <summary> | ||
310 | /// Check if the given key is an npc | 315 | /// Check if the given key is an npc |
311 | /// </summary> | 316 | /// </summary> |
312 | /// <param name="npc"></param> | 317 | /// <param name="npc"></param> |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 7d5e568..b436c52 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | |||
@@ -552,6 +552,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
552 | m_OSSL_Functions.osForceBreakLink(linknum); | 552 | m_OSSL_Functions.osForceBreakLink(linknum); |
553 | } | 553 | } |
554 | 554 | ||
555 | public void osForceBreakAllLinks() | ||
556 | { | ||
557 | m_OSSL_Functions.osForceBreakAllLinks(); | ||
558 | } | ||
559 | |||
555 | public LSL_Integer osIsNpc(LSL_Key npc) | 560 | public LSL_Integer osIsNpc(LSL_Key npc) |
556 | { | 561 | { |
557 | return m_OSSL_Functions.osIsNpc(npc); | 562 | return m_OSSL_Functions.osIsNpc(npc); |