public LSL_Integer llGetStatus(int status)
{
if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL", m_itemID)) return new LSL_Integer();
if (status == ScriptBaseClass.STATUS_PHYSICS)
{
return (m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Physics) == (uint)PrimFlags.Physics ? new LSL_Integer(1) : new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_PHANTOM)
{
return (m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Phantom) == (uint)PrimFlags.Phantom ? new LSL_Integer(1) : new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_CAST_SHADOWS)
{
if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.CastShadows) == (uint)PrimFlags.CastShadows)
return new LSL_Integer(1);
return new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_BLOCK_GRAB)
{
return m_host.GetBlockGrab(false) ? new LSL_Integer(1) : new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_BLOCK_GRAB_OBJECT)
{
return m_host.GetBlockGrab(true) ? new LSL_Integer(1) : new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_DIE_AT_EDGE)
{
return m_host.GetDieAtEdge() ? new LSL_Integer(1) : new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_RETURN_AT_EDGE)
{
return m_host.GetReturnAtEdge() ? new LSL_Integer(1) : new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_ROTATE_X)
{
return m_host.GetAxisRotation(2) == 2 ? new LSL_Integer(1) : new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_ROTATE_Y)
{
return m_host.GetAxisRotation(4) == 4 ? new LSL_Integer(1) : new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_ROTATE_Z)
{
return m_host.GetAxisRotation(8) == 8 ? new LSL_Integer(1) : new LSL_Integer(0);
}
if (status == ScriptBaseClass.STATUS_SANDBOX)
{
return m_host.GetStatusSandbox() ? new LSL_Integer(1) : new LSL_Integer(0);
}
return new LSL_Integer(0);
}