aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs20
1 files changed, 17 insertions, 3 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 5e7c2d9..1afa4fb 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -2246,11 +2246,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2246 CheckThreatLevel(ThreatLevel.High, "osGetLinkPrimitiveParams"); 2246 CheckThreatLevel(ThreatLevel.High, "osGetLinkPrimitiveParams");
2247 m_host.AddScriptLPS(1); 2247 m_host.AddScriptLPS(1);
2248 InitLSL(); 2248 InitLSL();
2249 // One needs to cast m_LSL_Api because we're using functions not
2250 // on the ILSL_Api interface.
2251 LSL_Api LSL_Api = (LSL_Api)m_LSL_Api;
2249 LSL_List retVal = new LSL_List(); 2252 LSL_List retVal = new LSL_List();
2250 List<SceneObjectPart> parts = ((LSL_Api)m_LSL_Api).GetLinkParts(linknumber); 2253 LSL_List remaining = null;
2254 List<SceneObjectPart> parts = LSL_Api.GetLinkParts(linknumber);
2251 foreach (SceneObjectPart part in parts) 2255 foreach (SceneObjectPart part in parts)
2252 { 2256 {
2253 retVal += ((LSL_Api)m_LSL_Api).GetLinkPrimitiveParams(part, rules); 2257 remaining = LSL_Api.GetPrimParams(part, rules, ref retVal);
2258 }
2259
2260 while (remaining != null && remaining.Length > 2)
2261 {
2262 linknumber = remaining.GetLSLIntegerItem(0);
2263 rules = remaining.GetSublist(1, -1);
2264 parts = LSL_Api.GetLinkParts(linknumber);
2265
2266 foreach (SceneObjectPart part in parts)
2267 remaining = LSL_Api.GetPrimParams(part, rules, ref retVal);
2254 } 2268 }
2255 return retVal; 2269 return retVal;
2256 } 2270 }
@@ -2965,7 +2979,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2965 m_host.AddScriptLPS(1); 2979 m_host.AddScriptLPS(1);
2966 InitLSL(); 2980 InitLSL();
2967 2981
2968 return m_LSL_Api.GetLinkPrimitiveParamsEx(prim, rules); 2982 return m_LSL_Api.GetPrimitiveParamsEx(prim, rules);
2969 } 2983 }
2970 2984
2971 public void osSetPrimitiveParams(LSL_Key prim, LSL_List rules) 2985 public void osSetPrimitiveParams(LSL_Key prim, LSL_List rules)