//-----------------------------------------------------------------------------
// Purpose: Parameter heavy version
//-----------------------------------------------------------------------------
void FX_AddQuad( const Vector &origin, 
				 const Vector &normal, 
				 float startSize, 
				 float endSize, 
				 float sizeBias,
				 float startAlpha, 
				 float endAlpha,
				 float alphaBias,
				 float yaw,
				 float deltaYaw,
				 const Vector &color, 
				 float lifeTime, 
				 const char *shader, 
				 unsigned int flags )
{
	FXQuadData_t data;

	//Setup the data
	data.SetAlpha( startAlpha, endAlpha );
	data.SetScale( startSize, endSize );
	data.SetFlags( flags );
	data.SetMaterial( shader );
	data.SetNormal( normal );
	data.SetOrigin( origin );
	data.SetLifeTime( lifeTime );
	data.SetColor( color[0], color[1], color[2] );
	data.SetScaleBias( sizeBias );
	data.SetAlphaBias( alphaBias );
	data.SetYaw( yaw, deltaYaw );

	//Output it
	FX_AddQuad( data );
}
void C_BaseCombatCharacter::CreateObjectiveCircle()
{
	//only if we don't already have one
	if (m_objectiveCircle) return;

	//doubling brightness because the sprite is less visible now that it's drawn only once
	const float brightness = clamp((0.25f * 3), 0.1, 1.0);

	//TGB: this defines a colour that moves from green to red depending on character's health
	//used in selection material and dedicated health circle
	//color should be redder as this guy approaches death
	const float redness = 1.0f;
	//as the ring gets redder it should become less green, or we'll end up yellow when near death
	const float greenness = 0.0f;

	//make quad data
	FXQuadData_t data;
	//only using start values
	data.SetAlpha( 0.5, 0 );
	data.SetScale( 25.0f, 0 );
	data.SetMaterial( "effects/objective_marker" );
	data.SetNormal( Vector(0,0,1) );
	data.SetOrigin( GetAbsOrigin() + Vector(0,0,3) );
	data.SetColor( redness*brightness, greenness*brightness, 0 );
	data.SetScaleBias( 0 );
	data.SetAlphaBias( 0 );
	data.SetYaw( 0, 0 );

	m_objectiveCircle = new CFXCharSprite( data );
}