public LSL_Integer llGetListEntryType(LSL_List src, int index)
{
if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL", m_itemID)) return 0;
if (index < 0)
{
index = src.Length + index;
}
if (index >= src.Length)
{
return 0;
}
if (src.Data[index] is LSL_Integer || src.Data[index] is Int32)
return ScriptBaseClass.TYPE_INTEGER;
if (src.Data[index] is LSL_Float || src.Data[index] is Single || src.Data[index] is Double)
return ScriptBaseClass.TYPE_FLOAT;
if (src.Data[index] is LSL_String || src.Data[index] is String)
{
UUID tuuid;
if (UUID.TryParse(src.Data[index].ToString(), out tuuid))
{
return ScriptBaseClass.TYPE_KEY;
}
return ScriptBaseClass.TYPE_STRING;
}
if (src.Data[index] is LSL_Vector)
return ScriptBaseClass.TYPE_VECTOR;
if (src.Data[index] is LSL_Rotation)
return ScriptBaseClass.TYPE_ROTATION;
if (src.Data[index] is LSL_List)
return 7; //Extension of LSL by us
return ScriptBaseClass.TYPE_INVALID;
}