//----------------------------------------------------------------------------- // 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 ); }