Restore the recursive calling of PRIM_LINK_TARGET because the version I made

breaks LINK_SET et al.
remove-scene-viewer
Melanie 2011-11-02 12:09:18 +00:00
parent 1b9ae3fb51
commit c5fb39e21f
1 changed files with 390 additions and 383 deletions

View File

@ -7067,6 +7067,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
bool positionChanged = false;
LSL_Vector currentPosition = GetPartLocalPos(part);
try
{
while (idx < rules.Length)
{
int code = rules.GetLSLIntegerItem(idx++);
@ -7436,14 +7438,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
TargetOmega(part, axis, (double)spinrate, (double)gain);
break;
case (int)ScriptBaseClass.PRIM_LINK_TARGET:
if (remain < 1)
if (remain < 3) // setting to 3 on the basis that parsing any usage of PRIM_LINK_TARGET that has nothing following it is pointless.
return;
LSL_Integer new_linknumber = rules.GetLSLIntegerItem(idx++);
part = part.ParentGroup.GetLinkNumPart((int)new_linknumber);
break;
}
}
LSL_List new_rules = rules.GetSublist(idx, -1);
setLinkPrimParams((int)new_linknumber, new_rules);
return;
}
}
}
finally
{
if (positionChanged)
{
if (part.ParentGroup.RootPart == part)
@ -7460,6 +7466,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
}
}
public LSL_String llStringToBase64(string str)
{