Provide tests for native datatypes where LSL Constants are used in lists as JSON elements. Namely: LSL_Float/double, LSL_String/string, LSL_Integer/int. Fixes http://opensimulator.org/mantis/view.php?id=7957
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>LSLKeyTest
parent
2d8669ad39
commit
e15dc72113
|
@ -16426,11 +16426,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
|
|
||||||
private OSD ListToJson(object o)
|
private OSD ListToJson(object o)
|
||||||
{
|
{
|
||||||
if (o is LSL_Float)
|
if (o is LSL_Float || o is double)
|
||||||
return OSD.FromReal(((LSL_Float)o).value);
|
|
||||||
if (o is LSL_Integer)
|
|
||||||
{
|
{
|
||||||
int i = ((LSL_Integer)o).value;
|
double float_val;
|
||||||
|
if (o is double)
|
||||||
|
float_val = ((double)o);
|
||||||
|
else
|
||||||
|
float_val = ((LSL_Float)o).value;
|
||||||
|
|
||||||
|
return OSD.FromReal(float_val);
|
||||||
|
}
|
||||||
|
if (o is LSL_Integer || o is int)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
if (o is int)
|
||||||
|
i = ((int)o);
|
||||||
|
else
|
||||||
|
i = ((LSL_Integer)o).value;
|
||||||
|
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
return OSD.FromBoolean(false);
|
return OSD.FromBoolean(false);
|
||||||
else if (i == 1)
|
else if (i == 1)
|
||||||
|
@ -16441,9 +16454,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
return OSD.FromString(((LSL_Rotation)o).ToString());
|
return OSD.FromString(((LSL_Rotation)o).ToString());
|
||||||
if (o is LSL_Vector)
|
if (o is LSL_Vector)
|
||||||
return OSD.FromString(((LSL_Vector)o).ToString());
|
return OSD.FromString(((LSL_Vector)o).ToString());
|
||||||
if (o is LSL_String)
|
if (o is LSL_String || o is string)
|
||||||
{
|
{
|
||||||
string str = ((LSL_String)o).m_string;
|
string str;
|
||||||
|
if (o is string)
|
||||||
|
str = ((string)o);
|
||||||
|
else
|
||||||
|
str = ((LSL_String)o).m_string;
|
||||||
|
|
||||||
if (str == ScriptBaseClass.JSON_NULL)
|
if (str == ScriptBaseClass.JSON_NULL)
|
||||||
return new OSD();
|
return new OSD();
|
||||||
return OSD.FromString(str);
|
return OSD.FromString(str);
|
||||||
|
|
Loading…
Reference in New Issue