//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CHudMedicChargeMeter::OnTick( void ) { C_TFPlayer *pPlayer = C_TFPlayer::GetLocalTFPlayer(); if ( !pPlayer ) return; CTFWeaponBase *pWpn = pPlayer->GetActiveTFWeapon(); if ( !pWpn || ( pWpn->GetWeaponID() != TF_WEAPON_MEDIGUN ) ) return; CWeaponMedigun *pMedigun = static_cast< CWeaponMedigun *>( pWpn ); if ( !pMedigun ) return; float flCharge = pMedigun->GetChargeLevel(); if ( flCharge != m_flLastChargeValue ) { if ( m_pChargeMeter ) { m_pChargeMeter->SetProgress( flCharge ); } if ( !m_bCharged ) { if ( flCharge >= 1.0 ) { g_pClientMode->GetViewportAnimationController()->StartAnimationSequence( this, "HudMedicCharged" ); m_bCharged = true; } } else { // we've got invuln charge or we're using our invuln if ( !pMedigun->IsReleasingCharge() ) { g_pClientMode->GetViewportAnimationController()->StartAnimationSequence( this, "HudMedicChargedStop" ); m_bCharged = false; } } } m_flLastChargeValue = flCharge; }