abstract class CompareArguments extends AIbehaviorconditionScript
{
	editable var m_var1 : CName;
	editable var m_var2 : CName;
}

class CompareArgumentsBooleans extends CompareArguments
{

	protected override function Check( context : ScriptExecutionContext ) : AIbehaviorConditionOutcomes
	{
		return ScriptExecutionContext.GetArgumentBool( context, m_var1 ) == ScriptExecutionContext.GetArgumentBool( context, m_var2 );
	}

}

class CompareArgumentsInts extends CompareArguments
{
	editable var m_comparator : ECompareOp;

	protected override function Check( context : ScriptExecutionContext ) : AIbehaviorConditionOutcomes
	{
		return Compare( m_comparator, ScriptExecutionContext.GetArgumentInt( context, m_var1 ), ScriptExecutionContext.GetArgumentInt( context, m_var2 ) );
	}

}

class CompareArgumentsFloats extends CompareArguments
{
	editable var m_comparator : ECompareOp;

	protected override function Check( context : ScriptExecutionContext ) : AIbehaviorConditionOutcomes
	{
		return CompareF( m_comparator, ScriptExecutionContext.GetArgumentFloat( context, m_var1 ), ScriptExecutionContext.GetArgumentFloat( context, m_var2 ) );
	}

}

class CompareArgumentsNames extends CompareArguments
{

	protected override function Check( context : ScriptExecutionContext ) : AIbehaviorConditionOutcomes
	{
		return ScriptExecutionContext.GetArgumentName( context, m_var1 ) == ScriptExecutionContext.GetArgumentName( context, m_var2 );
	}

}

class CompareArgumentsVectors extends CompareArguments
{

	protected override function Check( context : ScriptExecutionContext ) : AIbehaviorConditionOutcomes
	{
		return ScriptExecutionContext.GetArgumentVector( context, m_var1 ) == ScriptExecutionContext.GetArgumentVector( context, m_var2 );
	}

}

class CompareArgumentsObjects extends CompareArguments
{

	protected override function Check( context : ScriptExecutionContext ) : AIbehaviorConditionOutcomes
	{
		return ScriptExecutionContext.GetArgumentObject( context, m_var1 ) == ScriptExecutionContext.GetArgumentObject( context, m_var2 );
	}

}

class CompareArgumentsNodeRefs extends CompareArguments
{

	protected override function Check( context : ScriptExecutionContext ) : AIbehaviorConditionOutcomes
	{
		return ScriptExecutionContext.GetArgumentNodeRef( context, m_var1 ) == ScriptExecutionContext.GetArgumentNodeRef( context, m_var2 );
	}

}

