mantis8548: change more LSL arguments declarations to their formal form. Still a lot more to do. This is a case where coerence matters over performance, to avoid more future issues

This commit is contained in:
UbitUmarov
2019-07-31 16:27:36 +01:00
parent 1499baf13e
commit 0bcd58fd0f
3 changed files with 108 additions and 100 deletions

View File

@@ -784,25 +784,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public LSL_Float llCos(double f)
{
m_host.AddScriptLPS(1);
return (double)Math.Cos(f);
return Math.Cos(f);
}
public LSL_Float llTan(double f)
{
m_host.AddScriptLPS(1);
return (double)Math.Tan(f);
return Math.Tan(f);
}
public LSL_Float llAtan2(double x, double y)
public LSL_Float llAtan2(LSL_Float x, LSL_Float y)
{
m_host.AddScriptLPS(1);
return (double)Math.Atan2(x, y);
return Math.Atan2(x, y);
}
public LSL_Float llSqrt(double f)
{
m_host.AddScriptLPS(1);
return (double)Math.Sqrt(f);
return Math.Sqrt(f);
}
public LSL_Float llPow(double fbase, double fexponent)
@@ -811,7 +811,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return (double)Math.Pow(fbase, fexponent);
}
public LSL_Integer llAbs(int i)
public LSL_Integer llAbs(LSL_Integer i)
{
// changed to replicate LSL behaviour whereby minimum int value is returned untouched.
m_host.AddScriptLPS(1);
@@ -3069,7 +3069,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.ParentGroup.StopMoveToTarget();
}
public void llApplyImpulse(LSL_Vector force, int local)
public void llApplyImpulse(LSL_Vector force, LSL_Integer local)
{
m_host.AddScriptLPS(1);
//No energy force yet
@@ -3526,7 +3526,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return src.ToLower();
}
public LSL_Integer llGiveMoney(string destination, int amount)
public LSL_Integer llGiveMoney(LSL_Key destination, LSL_Integer amount)
{
Util.FireAndForget(x =>
{
@@ -3785,7 +3785,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return 100f * llGetMass();
}
public void llCollisionFilter(string name, string id, int accept)
public void llCollisionFilter(LSL_String name, LSL_Key id, LSL_Integer accept)
{
m_host.AddScriptLPS(1);
m_host.CollisionFilter.Clear();
@@ -4513,7 +4513,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
public void llCreateLink(LSL_String target, LSL_Integer parent)
public void llCreateLink(LSL_Key target, LSL_Integer parent)
{
m_host.AddScriptLPS(1);
@@ -4847,7 +4847,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return 1.0f;
}
public void llGiveInventory(string destination, string inventory)
public void llGiveInventory(LSL_Key destination, LSL_String inventory)
{
m_host.AddScriptLPS(1);
@@ -5317,7 +5317,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
public void llCollisionSound(string impact_sound, double impact_volume)
public void llCollisionSound(LSL_String impact_sound, LSL_Float impact_volume)
{
m_host.AddScriptLPS(1);
@@ -5344,11 +5344,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.aggregateScriptEvents();
}
public LSL_String llGetAnimation(string id)
public LSL_String llGetAnimation(LSL_Key id)
{
// This should only return a value if the avatar is in the same region
m_host.AddScriptLPS(1);
UUID avatar = (UUID)id;
UUID avatar;
if(!UUID.TryParse(id, out avatar))
return "";
ScenePresence presence = World.GetScenePresence(avatar);
if (presence == null)
return "";
@@ -5698,13 +5700,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return angle;
}
public LSL_Float llAcos(double val)
public LSL_Float llAcos(LSL_Float val)
{
m_host.AddScriptLPS(1);
return (double)Math.Acos(val);
}
public LSL_Float llAsin(double val)
public LSL_Float llAsin(LSL_Float val)
{
m_host.AddScriptLPS(1);
return (double)Math.Asin(val);
@@ -5744,7 +5746,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return UUID.Zero.ToString();
}
public void llAllowInventoryDrop(int add)
public void llAllowInventoryDrop(LSL_Integer add)
{
m_host.AddScriptLPS(1);
@@ -6639,7 +6641,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
/// AGENT_BUSY
/// Remove as they are done
/// </summary>
public LSL_Integer llGetAgentInfo(string id)
public LSL_Integer llGetAgentInfo(LSL_Key id)
{
m_host.AddScriptLPS(1);
@@ -6746,7 +6748,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return flags;
}
public LSL_String llGetAgentLanguage(string id)
public LSL_String llGetAgentLanguage(LSL_Key id)
{
// This should only return a value if the avatar is in the same region, but eh. idc.
m_host.AddScriptLPS(1);
@@ -6857,7 +6859,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return result;
}
public void llAdjustSoundVolume(double volume)
public void llAdjustSoundVolume(LSL_Float volume)
{
m_host.AddScriptLPS(1);
m_host.AdjustSoundGain(volume);
@@ -6870,7 +6872,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.SoundRadius = radius;
}
public LSL_String llKey2Name(string id)
public LSL_String llKey2Name(LSL_Key id)
{
m_host.AddScriptLPS(1);
UUID key = new UUID();
@@ -7044,22 +7046,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
/// only the height of avatars vary and that says:
/// Width (x) and depth (y) are constant. (0.45m and 0.6m respectively).
/// </summary>
public LSL_Vector llGetAgentSize(string id)
public LSL_Vector llGetAgentSize(LSL_Key id)
{
m_host.AddScriptLPS(1);
ScenePresence avatar = World.GetScenePresence((UUID)id);
LSL_Vector agentSize;
UUID avID;
if(!UUID.TryParse(id, out avID))
return ScriptBaseClass.ZERO_VECTOR;
ScenePresence avatar = World.GetScenePresence(avID);
if (avatar == null || avatar.IsChildAgent) // Fail if not in the same region
{
agentSize = ScriptBaseClass.ZERO_VECTOR;
}
else
{
return ScriptBaseClass.ZERO_VECTOR;
// agentSize = new LSL_Vector(0.45f, 0.6f, avatar.Appearance.AvatarHeight);
Vector3 s = avatar.Appearance.AvatarSize;
agentSize = new LSL_Vector(s.X, s.Y, s.Z);
}
return agentSize;
Vector3 s = avatar.Appearance.AvatarSize;
return new LSL_Vector(s.X, s.Y, s.Z);
}
public LSL_Integer llSameGroup(string id)
@@ -7235,12 +7235,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return m_host.ParentGroup.AttachmentPoint;
}
public LSL_List llGetAttachedList(string id)
public LSL_List llGetAttachedList(LSL_Key id)
{
m_host.AddScriptLPS(1);
ScenePresence av = World.GetScenePresence((UUID)id);
UUID avID;
if(!UUID.TryParse(id, out avID))
return new LSL_List("NOT_FOUND");
ScenePresence av = World.GetScenePresence(avID);
if (av == null || av.IsDeleted)
return new LSL_List("NOT_FOUND");
@@ -7825,7 +7828,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
public void llGiveInventoryList(string destination, string category, LSL_List inventory)
public void llGiveInventoryList(LSL_Key destination, LSL_String category, LSL_List inventory)
{
m_host.AddScriptLPS(1);
@@ -8003,7 +8006,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
public void llAddToLandPassList(LSL_Key avatar, double hours)
public void llAddToLandPassList(LSL_Key avatar, LSL_Float hours)
{
m_host.AddScriptLPS(1);
UUID key;
@@ -11075,16 +11078,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return (double)Math.Log(val);
}
public LSL_List llGetAnimationList(string id)
public LSL_List llGetAnimationList(LSL_Key id)
{
m_host.AddScriptLPS(1);
LSL_List l = new LSL_List();
ScenePresence av = World.GetScenePresence((UUID)id);
UUID avID;
if(!UUID.TryParse(id, out avID))
return new LSL_List();
ScenePresence av = World.GetScenePresence(avID);
if (av == null || av.IsChildAgent) // only if in the region
return l;
return new LSL_List();
UUID[] anims;
anims = av.Animator.GetAnimationArray();
LSL_List l = new LSL_List();
foreach (UUID foo in anims)
l.Add(new LSL_Key(foo.ToString()));
return l;
@@ -13608,7 +13616,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
ScriptSleep(m_sleepMsOnMapDestination);
}
public void llAddToLandBanList(LSL_Key avatar, double hours)
public void llAddToLandBanList(LSL_Key avatar, LSL_Float hours)
{
m_host.AddScriptLPS(1);
UUID key;
@@ -15048,7 +15056,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return name.Replace(" ", ".").ToLower();
}
public LSL_String llGetUsername(string id)
public LSL_String llGetUsername(LSL_Key id)
{
return Name2Username(llKey2Name(id));
}
@@ -16591,7 +16599,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_SoundModule.SetSoundQueueing(m_host.UUID, queue == ScriptBaseClass.TRUE.value);
}
public void llCollisionSprite(string impact_sprite)
public void llCollisionSprite(LSL_String impact_sprite)
{
m_host.AddScriptLPS(1);
// Viewer 2.0 broke this and it's likely LL has no intention
@@ -16652,7 +16660,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
new DetectParams[0]));
}
public LSL_Key llTransferLindenDollars(string destination, int amount)
public LSL_Key llTransferLindenDollars(LSL_Key destination, LSL_Integer amount)
{
UUID txn = UUID.Random();