function Player::getEyeRay( %this, %range, %mask )
{
	%start = %this.getEyePoint();
	%stop = vectorAdd( %start, vectorScale( %this.getEyeVector(), %range ) );
	return containerRayCast( %start, %stop, %mask, %this );
}

function Player::getMuzzleRay( %this, %range, %mask )
{
	%start = %this.getMuzzlePoint();
	%stop = vectorAdd( %start, vectorScale( %this.getMuzzleVector(), %range ) );
	return containerRayCast( %start, %stop, %mask, %this );
}

function Player::getEyeObject( %this, %range, %mask )
{
	%ray = %this.getEyeRay( %range, %mask );
	
	if ( isObject( %obj = firstWord( %ray ) ) )
	{
		return %obj;
	}
	
	return -1;
}

function Player::getMuzzleObject( %this, %range, %mask )
{
	%ray = %this.getMuzzleRay( %range, %mask );
	
	if ( isObject( %obj = firstWord( %ray ) ) )
	{
		return %obj;
	}
	
	return -1;
}

function AIPlayer::getEyeRay( %this, %range, %mask )
{
	return Player::getEyeRay( %this, %range, %mask );
}

function AIPlayer::getMuzzleRay( %this, %range, %mask )
{
	return Player::getMuzzleRay( %this, %range, %mask );
}

function AIPlayer::getEyeObject( %this, %range, %mask )
{
	return Player::getEyeObject( %this, %range, %mask );
}

function AIPlayer::getMuzzleObject( %this, %range, %mask )
{
	return Player::getMuzzleObject( %this, %range, %mask );
}