void CBliinkHudAmmo::Paint() { C_BliinkPlayer* pBliinkPlayer = ToBliinkPlayer(C_BasePlayer::GetLocalPlayer()); if( !pBliinkPlayer ) return; if( pBliinkPlayer->State_Get() != STATE_BLIINK_SURVIVOR ) return; C_BaseCombatWeapon* pWeapon = pBliinkPlayer->GetActiveWeapon(); if( !pWeapon ) return; if( pWeapon->IsMeleeWeapon() ) return; int iClipCount = pWeapon->Clip1(); int iAmmoCount = pBliinkPlayer->GetAmmoCount( pWeapon->GetPrimaryAmmoType() ); vgui::IScheme* pScheme = vgui::scheme()->GetIScheme(GetScheme()); int wide, tall; SetPaintBorderEnabled(false); // Drawing background surface()->DrawSetTexture( m_nAmmoBack ); surface()->DrawTexturedRect( 0, 0, 128, 64 ); // Drawing ammo count (clip/ammo) wchar_t pNumberText[12]; V_snwprintf( pNumberText, ARRAYSIZE(pNumberText), L"%d : %d", iClipCount, iAmmoCount ); vgui::HFont hNumberFont = pScheme->GetFont( "BliinkHUDLarge" ); surface()->GetTextSize(hNumberFont, pNumberText, wide, tall); int number_xpos = (int) floor(64.0f - ((float) wide)/2.0f); int number_ypos = (int) floor(32.0f - ((float) tall)/2.0f); surface()->DrawSetTextFont( hNumberFont ); surface()->DrawSetTextColor( 210, 210, 210, 255 ); surface()->DrawSetTextPos( number_xpos, number_ypos ); surface()->DrawPrintText( pNumberText, wcslen(pNumberText) ); }