diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 20 |
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) |