aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2014-03-13 00:04:20 +0000
committerJustin Clark-Casey (justincc)2014-03-13 00:04:20 +0000
commit873eee543192632a7febb99aa77b53d14d926674 (patch)
tree24bf475fdabf0dac18a85072a54d9ee1e61a2ef9 /OpenSim/Region/ScriptEngine/Shared
parentOnly allow llBreakAllLinks() to work if script has received PERMISSION_CHANGE... (diff)
downloadopensim-SC_OLD-873eee543192632a7febb99aa77b53d14d926674.zip
opensim-SC_OLD-873eee543192632a7febb99aa77b53d14d926674.tar.gz
opensim-SC_OLD-873eee543192632a7febb99aa77b53d14d926674.tar.bz2
opensim-SC_OLD-873eee543192632a7febb99aa77b53d14d926674.tar.xz
Implement osForceBreakAllLinks().
Identical to llBreakAllLinks() except that it doesn't require the script to have link permissions.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs5
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs10
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs5
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs5
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);