implementing rule tracking
parent
3bf7bd6359
commit
0c3061f973
|
@ -7234,9 +7234,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
List<SceneObjectPart> parts = GetLinkParts(linknumber);
|
List<SceneObjectPart> parts = GetLinkParts(linknumber);
|
||||||
|
|
||||||
LSL_List remaining = null;
|
LSL_List remaining = null;
|
||||||
|
uint rulesParsed = 0;
|
||||||
|
|
||||||
foreach (SceneObjectPart part in parts)
|
foreach (SceneObjectPart part in parts)
|
||||||
remaining = SetPrimParams(part, rules, originFunc);
|
remaining = SetPrimParams(part, rules, originFunc, ref rulesParsed);
|
||||||
|
|
||||||
while (remaining != null && remaining.Length > 2)
|
while (remaining != null && remaining.Length > 2)
|
||||||
{
|
{
|
||||||
|
@ -7245,11 +7246,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
parts = GetLinkParts(linknumber);
|
parts = GetLinkParts(linknumber);
|
||||||
|
|
||||||
foreach (SceneObjectPart part in parts)
|
foreach (SceneObjectPart part in parts)
|
||||||
remaining = SetPrimParams(part, rules, originFunc);
|
remaining = SetPrimParams(part, rules, originFunc, ref rulesParsed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected LSL_List SetPrimParams(SceneObjectPart part, LSL_List rules, string originFunc)
|
protected LSL_List SetPrimParams(SceneObjectPart part, LSL_List rules, string originFunc, ref uint rulesParsed)
|
||||||
{
|
{
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
int idxStart = 0;
|
int idxStart = 0;
|
||||||
|
@ -7261,6 +7262,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
{
|
{
|
||||||
while (idx < rules.Length)
|
while (idx < rules.Length)
|
||||||
{
|
{
|
||||||
|
++rulesParsed;
|
||||||
int code = rules.GetLSLIntegerItem(idx++);
|
int code = rules.GetLSLIntegerItem(idx++);
|
||||||
|
|
||||||
int remain = rules.Length - idx;
|
int remain = rules.Length - idx;
|
||||||
|
@ -7643,7 +7645,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
{
|
{
|
||||||
ShoutError(string.Format(
|
ShoutError(string.Format(
|
||||||
"{0} error running rule #{1}: arg #{2} ",
|
"{0} error running rule #{1}: arg #{2} ",
|
||||||
originFunc, "unknown", idx - idxStart) + e.Message);
|
originFunc, rulesParsed, idx - idxStart) + e.Message);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
@ -10774,14 +10776,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
if (obj.OwnerID != m_host.OwnerID)
|
if (obj.OwnerID != m_host.OwnerID)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
LSL_List remaining = SetPrimParams(obj, rules, originFunc);
|
uint rulesParsed = 0;
|
||||||
|
LSL_List remaining = SetPrimParams(obj, rules, originFunc, ref rulesParsed);
|
||||||
|
|
||||||
while ((object)remaining != null && remaining.Length > 2)
|
while ((object)remaining != null && remaining.Length > 2)
|
||||||
{
|
{
|
||||||
LSL_Integer newLink = remaining.GetLSLIntegerItem(0);
|
LSL_Integer newLink = remaining.GetLSLIntegerItem(0);
|
||||||
LSL_List newrules = remaining.GetSublist(1, -1);
|
LSL_List newrules = remaining.GetSublist(1, -1);
|
||||||
foreach(SceneObjectPart part in GetLinkParts(obj, newLink)){
|
foreach(SceneObjectPart part in GetLinkParts(obj, newLink)){
|
||||||
remaining = SetPrimParams(part, newrules, originFunc);
|
remaining = SetPrimParams(part, newrules, originFunc, ref rulesParsed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue