From d7c9725ec03594df8b5657a500059c080923a7c5 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 27 Feb 2014 00:11:50 +0000 Subject: refactor: Make osGetPrimtiveParams() and soSetPrimitiveParams() use common get/set params code in LSL_Api rather than an old copy&pasted section. --- .../Shared/Api/Implementation/LSL_Api.cs | 45 ++++++---------------- 1 file changed, 12 insertions(+), 33 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Shared') diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 25d8c54..f126561 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -7400,7 +7400,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api { m_host.AddScriptLPS(1); - setLinkPrimParams(ScriptBaseClass.LINK_THIS, rules, "llSetPrimitiveParams"); + SetLinkPrimParams(ScriptBaseClass.LINK_THIS, rules, "llSetPrimitiveParams"); ScriptSleep(200); } @@ -7409,7 +7409,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api { m_host.AddScriptLPS(1); - setLinkPrimParams(linknumber, rules, "llSetLinkPrimitiveParams"); + SetLinkPrimParams(linknumber, rules, "llSetLinkPrimitiveParams"); ScriptSleep(200); } @@ -7418,13 +7418,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api { m_host.AddScriptLPS(1); - setLinkPrimParams(linknumber, rules, "llSetLinkPrimitiveParamsFast"); + SetLinkPrimParams(linknumber, rules, "llSetLinkPrimitiveParamsFast"); } - protected void setLinkPrimParams(int linknumber, LSL_List rules, string originFunc) + protected void SetLinkPrimParams(int linknumber, LSL_List rules, string originFunc) { - List entities = GetLinkEntities(linknumber); + SetEntityParams(GetLinkEntities(linknumber), rules, originFunc); + } + protected void SetEntityParams(List entities, LSL_List rules, string originFunc) + { LSL_List remaining = null; uint rulesParsed = 0; @@ -7438,7 +7441,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api while (remaining != null && remaining.Length > 2) { - linknumber = remaining.GetLSLIntegerItem(0); + int linknumber = remaining.GetLSLIntegerItem(0); rules = remaining.GetSublist(1, -1); entities = GetLinkEntities(linknumber); @@ -11530,41 +11533,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api if (obj.OwnerID != m_host.OwnerID) return; - uint rulesParsed = 0; - LSL_List remaining = SetPrimParams(obj, rules, originFunc, ref rulesParsed); - - while ((object)remaining != null && remaining.Length > 2) - { - LSL_Integer newLink = remaining.GetLSLIntegerItem(0); - LSL_List newrules = remaining.GetSublist(1, -1); - foreach(SceneObjectPart part in GetLinkParts(obj, newLink)){ - remaining = SetPrimParams(part, newrules, originFunc, ref rulesParsed); - } - } + SetEntityParams(new List() { obj }, rules, originFunc); } public LSL_List GetPrimitiveParamsEx(LSL_Key prim, LSL_List rules) { SceneObjectPart obj = World.GetSceneObjectPart(new UUID(prim)); - LSL_List result = new LSL_List(); - if (obj != null && obj.OwnerID == m_host.OwnerID) - { - LSL_List remaining = GetPrimParams(obj, rules, ref result); - - while (remaining != null && remaining.Length > 2) - { - int linknumber = remaining.GetLSLIntegerItem(0); - rules = remaining.GetSublist(1, -1); - List parts = GetLinkParts(linknumber); + return GetEntityParams(obj, rules); - foreach (SceneObjectPart part in parts) - remaining = GetPrimParams(part, rules, ref result); - } - } - - return result; + return new LSL_List(); } public void print(string str) -- cgit v1.1