コード例 #1
0
ファイル: bliink_hud_ammo.cpp プロジェクト: Randdalf/bliink
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) );
}