Instance-types-in-list fix for LSL/OSSL functions. This will fix llListFindList() which always returns -1 when you compare with the list from those functions.

*llCSV2List
*llGetAnimationList
*llGetLinkPrimitiveParams
*llGetObjectDetails
*llGetParcelDetails
*llGetParcelPrimOwners
*llGetPrimitiveParams
*GetLinkPrimitiveParamsEx
*osGetAgents
*osMatchString
*osGetLinkPrimitiveParams
*osGetPrimitiveParams
*osGetAvatarList
bulletsim
Makopoppo 2011-07-04 22:45:21 +09:00 committed by Justin Clark-Casey (justincc)
parent d79c6c8820
commit e7abf834d1
2 changed files with 31 additions and 30 deletions

View File

@ -5050,7 +5050,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
} }
result.Add(src.Substring(start,length).Trim()); result.Add(new LSL_String(src.Substring(start,length).Trim()));
return result; return result;
} }
@ -7391,7 +7391,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
UUID[] anims; UUID[] anims;
anims = av.Animator.GetAnimationArray(); anims = av.Animator.GetAnimationArray();
foreach (UUID foo in anims) foreach (UUID foo in anims)
l.Add(foo.ToString()); l.Add(new LSL_Key(foo.ToString()));
return l; return l;
} }
@ -7926,17 +7926,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
case (int)ScriptBaseClass.PRIM_TEXT: case (int)ScriptBaseClass.PRIM_TEXT:
Color4 textColor = part.GetTextColor(); Color4 textColor = part.GetTextColor();
res.Add(part.Text); res.Add(new LSL_String(part.Text));
res.Add(new LSL_Vector(textColor.R, res.Add(new LSL_Vector(textColor.R,
textColor.G, textColor.G,
textColor.B)); textColor.B));
res.Add(new LSL_Float(textColor.A)); res.Add(new LSL_Float(textColor.A));
break; break;
case (int)ScriptBaseClass.PRIM_NAME: case (int)ScriptBaseClass.PRIM_NAME:
res.Add(part.Name); res.Add(new LSL_String(part.Name));
break; break;
case (int)ScriptBaseClass.PRIM_DESC: case (int)ScriptBaseClass.PRIM_DESC:
res.Add(part.Description); res.Add(new LSL_String(part.Description));
break; break;
case (int)ScriptBaseClass.PRIM_ROT_LOCAL: case (int)ScriptBaseClass.PRIM_ROT_LOCAL:
res.Add(new LSL_Rotation(part.RotationOffset.X, part.RotationOffset.Y, part.RotationOffset.Z, part.RotationOffset.W)); res.Add(new LSL_Rotation(part.RotationOffset.X, part.RotationOffset.Y, part.RotationOffset.Z, part.RotationOffset.W));
@ -9895,8 +9895,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
foreach (KeyValuePair<UUID, int> detectedParams in land.GetLandObjectOwners()) foreach (KeyValuePair<UUID, int> detectedParams in land.GetLandObjectOwners())
{ {
ret.Add(detectedParams.Key.ToString()); ret.Add(new LSL_String(detectedParams.Key.ToString()));
ret.Add(detectedParams.Value); ret.Add(new LSL_Integer(detectedParams.Value));
} }
} }
ScriptSleep(2000); ScriptSleep(2000);
@ -9946,25 +9946,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
switch (o.ToString()) switch (o.ToString())
{ {
case "0": case "0":
ret = ret + new LSL_List(land.Name); ret.Add(new LSL_String(land.Name));
break; break;
case "1": case "1":
ret = ret + new LSL_List(land.Description); ret.Add(new LSL_String(land.Description));
break; break;
case "2": case "2":
ret = ret + new LSL_List(land.OwnerID.ToString()); ret.Add(new LSL_Key(land.OwnerID.ToString()));
break; break;
case "3": case "3":
ret = ret + new LSL_List(land.GroupID.ToString()); ret.Add(new LSL_Key(land.GroupID.ToString()));
break; break;
case "4": case "4":
ret = ret + new LSL_List(land.Area); ret.Add(new LSL_Integer(land.Area));
break; break;
case "5": case "5":
ret = ret + new LSL_List(land.GlobalID); ret.Add(new LSL_Key(land.GlobalID.ToString()));
break; break;
default: default:
ret = ret + new LSL_List(0); ret.Add(new LSL_Integer(0));
break; break;
} }
} }
@ -9996,10 +9996,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
switch (o.ToString()) switch (o.ToString())
{ {
case "1": case "1":
ret.Add(av.Firstname + " " + av.Lastname); ret.Add(new LSL_String(av.Firstname + " " + av.Lastname));
break; break;
case "2": case "2":
ret.Add(""); ret.Add(new LSL_String(""));
break; break;
case "3": case "3":
ret.Add(new LSL_Vector((double)av.AbsolutePosition.X, (double)av.AbsolutePosition.Y, (double)av.AbsolutePosition.Z)); ret.Add(new LSL_Vector((double)av.AbsolutePosition.X, (double)av.AbsolutePosition.Y, (double)av.AbsolutePosition.Z));
@ -10011,13 +10011,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
ret.Add(new LSL_Vector(av.Velocity.X, av.Velocity.Y, av.Velocity.Z)); ret.Add(new LSL_Vector(av.Velocity.X, av.Velocity.Y, av.Velocity.Z));
break; break;
case "6": case "6":
ret.Add(id); ret.Add(new LSL_String(id));
break; break;
case "7": case "7":
ret.Add(UUID.Zero.ToString()); ret.Add(new LSL_String(UUID.Zero.ToString()));
break; break;
case "8": case "8":
ret.Add(UUID.Zero.ToString()); ret.Add(new LSL_String(UUID.Zero.ToString()));
break; break;
} }
} }
@ -10031,10 +10031,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
switch (o.ToString()) switch (o.ToString())
{ {
case "1": case "1":
ret.Add(obj.Name); ret.Add(new LSL_String(obj.Name));
break; break;
case "2": case "2":
ret.Add(obj.Description); ret.Add(new LSL_String(obj.Description));
break; break;
case "3": case "3":
ret.Add(new LSL_Vector(obj.AbsolutePosition.X, obj.AbsolutePosition.Y, obj.AbsolutePosition.Z)); ret.Add(new LSL_Vector(obj.AbsolutePosition.X, obj.AbsolutePosition.Y, obj.AbsolutePosition.Z));
@ -10046,13 +10046,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
ret.Add(new LSL_Vector(obj.Velocity.X, obj.Velocity.Y, obj.Velocity.Z)); ret.Add(new LSL_Vector(obj.Velocity.X, obj.Velocity.Y, obj.Velocity.Z));
break; break;
case "6": case "6":
ret.Add(obj.OwnerID.ToString()); ret.Add(new LSL_String(obj.OwnerID.ToString()));
break; break;
case "7": case "7":
ret.Add(obj.GroupID.ToString()); ret.Add(new LSL_String(obj.GroupID.ToString()));
break; break;
case "8": case "8":
ret.Add(obj.CreatorID.ToString()); ret.Add(new LSL_String(obj.CreatorID.ToString()));
break; break;
} }
} }

View File

@ -811,7 +811,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
World.ForEachScenePresence(delegate(ScenePresence sp) World.ForEachScenePresence(delegate(ScenePresence sp)
{ {
if (!sp.IsChildAgent) if (!sp.IsChildAgent)
result.Add(sp.Name); result.Add(new LSL_String(sp.Name));
}); });
return result; return result;
} }
@ -2030,8 +2030,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
if (g.Success) if (g.Success)
{ {
result.Add(g.Value); result.Add(new LSL_String(g.Value));
result.Add(g.Index); result.Add(new LSL_Integer(g.Index));
} }
} }
} }
@ -2365,9 +2365,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
if (avatar.IsChildAgent == false) if (avatar.IsChildAgent == false)
{ {
result.Add(avatar.UUID); result.Add(new LSL_String(avatar.UUID.ToString()));
result.Add(avatar.AbsolutePosition); OpenMetaverse.Vector3 ap = avatar.AbsolutePosition;
result.Add(avatar.Name); result.Add(new LSL_Vector(ap.X, ap.Y, ap.Z));
result.Add(new LSL_String(avatar.Name));
} }
} }
}); });