Mantis#1437. Patch 3 of 4. Thank you kindly, Melanie for:
Corrects the XEngine's script startup semantics. Completes llRequestAgentData Implements llDetectedLink Fixes a few minor issues0.6.0-stable
parent
bbabd68c7c
commit
dab3a53920
|
@ -52,7 +52,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||||
// Only the types we need to convert
|
// Only the types we need to convert
|
||||||
dataTypes.Add("void", "void");
|
dataTypes.Add("void", "void");
|
||||||
dataTypes.Add("integer", "LSL_Types.LSLInteger");
|
dataTypes.Add("integer", "LSL_Types.LSLInteger");
|
||||||
dataTypes.Add("float", "double");
|
dataTypes.Add("float", "LSL_Types.LSLFloat");
|
||||||
dataTypes.Add("string", "LSL_Types.LSLString");
|
dataTypes.Add("string", "LSL_Types.LSLString");
|
||||||
dataTypes.Add("key", "LSL_Types.LSLString");
|
dataTypes.Add("key", "LSL_Types.LSLString");
|
||||||
dataTypes.Add("vector", "LSL_Types.Vector3");
|
dataTypes.Add("vector", "LSL_Types.Vector3");
|
||||||
|
|
|
@ -1093,6 +1093,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
|
||||||
m_string=s;
|
m_string=s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LSLString(LSLFloat f)
|
||||||
|
{
|
||||||
|
string s=String.Format("{0:0.000000}", f.value);
|
||||||
|
m_string=s;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Operators
|
#region Operators
|
||||||
|
@ -1160,6 +1166,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
|
||||||
return new LSLString(d);
|
return new LSLString(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static explicit operator LSLString(LSLFloat f)
|
||||||
|
{
|
||||||
|
return new LSLString(f);
|
||||||
|
}
|
||||||
|
|
||||||
public static implicit operator Vector3(LSLString s)
|
public static implicit operator Vector3(LSLString s)
|
||||||
{
|
{
|
||||||
return new Vector3(s.m_string);
|
return new Vector3(s.m_string);
|
||||||
|
@ -1225,6 +1236,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Operators
|
||||||
|
|
||||||
static public implicit operator int(LSLInteger i)
|
static public implicit operator int(LSLInteger i)
|
||||||
{
|
{
|
||||||
return i.value;
|
return i.value;
|
||||||
|
@ -1318,6 +1331,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
|
||||||
return i.value == 0;
|
return i.value == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Overriders
|
#region Overriders
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
|
@ -1352,6 +1367,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
|
||||||
public double value;
|
public double value;
|
||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
|
||||||
public LSLFloat(int i)
|
public LSLFloat(int i)
|
||||||
{
|
{
|
||||||
this.value = (double)i;
|
this.value = (double)i;
|
||||||
|
@ -1366,20 +1382,19 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
|
||||||
|
|
||||||
#region Operators
|
#region Operators
|
||||||
|
|
||||||
static public implicit operator Double(LSLFloat f)
|
static public implicit operator int(LSLFloat f)
|
||||||
{
|
{
|
||||||
return f.value;
|
return (int)f.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
//static public implicit operator System.Int32(LSLFloat f)
|
static public implicit operator uint(LSLFloat f)
|
||||||
//{
|
{
|
||||||
// return (int)f.value;
|
return (uint) Math.Abs(f.value);
|
||||||
//}
|
}
|
||||||
|
|
||||||
|
|
||||||
static public implicit operator Boolean(LSLFloat f)
|
static public implicit operator Boolean(LSLFloat f)
|
||||||
{
|
{
|
||||||
if (f.value == 0)
|
if (f.value == 0.0)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1394,17 +1409,57 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
|
||||||
return new LSLFloat(i);
|
return new LSLFloat(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static public implicit operator LSLFloat(string s)
|
||||||
|
{
|
||||||
|
return new LSLFloat(double.Parse(s));
|
||||||
|
}
|
||||||
|
|
||||||
static public implicit operator LSLFloat(double d)
|
static public implicit operator LSLFloat(double d)
|
||||||
{
|
{
|
||||||
return new LSLFloat(d);
|
return new LSLFloat(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static public bool operator ==(LSLFloat f1, LSLFloat f2)
|
||||||
|
{
|
||||||
|
return f1.value == f2.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static public bool operator !=(LSLFloat f1, LSLFloat f2)
|
||||||
|
{
|
||||||
|
return f1.value != f2.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static public LSLFloat operator ++(LSLFloat f)
|
||||||
|
{
|
||||||
|
f.value++;
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
|
static public LSLFloat operator --(LSLFloat f)
|
||||||
|
{
|
||||||
|
f.value--;
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
|
static public implicit operator System.Double(LSLFloat f)
|
||||||
|
{
|
||||||
|
return f.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
//static public implicit operator System.Int32(LSLFloat f)
|
||||||
|
//{
|
||||||
|
// return (int)f.value;
|
||||||
|
//}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Overriders
|
#region Overriders
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return this.value.ToString();
|
return String.Format("{0:0.000000}", this.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue