Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#include "cbase.h"
#include "hud.h"
#include "hudelement.h"
#include "hud_macros.h"
#include "iclientmode.h"
#include "hl1_hud_numbers.h"
// This is a bad way to implement HL1 style sprite fonts, but it will work for now
CHL1HudNumbers::CHL1HudNumbers( vgui::Panel *parent, const char *name ) : BaseClass( parent, name ) { vgui::Panel *pParent = g_pClientMode->GetViewport(); SetParent( pParent ); }
void CHL1HudNumbers::VidInit( void ) { for ( int i = 0; i < 10; i++ ) { char szNumString[ 10 ];
sprintf( szNumString, "number_%d", i ); icon_digits[ i ] = gHUD.GetIcon( szNumString ); } }
int CHL1HudNumbers::GetNumberFontHeight( void ) { if ( icon_digits[ 0 ] ) { return icon_digits[ 0 ]->Height(); } else { return 0; } }
int CHL1HudNumbers::GetNumberFontWidth( void ) { if ( icon_digits[ 0 ] ) { return icon_digits[ 0 ]->Width(); } else { return 0; } }
int CHL1HudNumbers::DrawHudNumber( int x, int y, int iNumber, Color &clrDraw ) { int iWidth = GetNumberFontWidth(); int k; if ( iNumber > 0 ) { // SPR_Draw 100's
if ( iNumber >= 100 ) { k = iNumber / 100; icon_digits[ k ]->DrawSelf( x, y, clrDraw ); x += iWidth; } else { x += iWidth; }
// SPR_Draw 10's
if ( iNumber >= 10 ) { k = ( iNumber % 100 ) / 10; icon_digits[ k ]->DrawSelf( x, y, clrDraw ); x += iWidth; } else { x += iWidth; }
// SPR_Draw ones
k = iNumber % 10; icon_digits[ k ]->DrawSelf( x, y, clrDraw ); x += iWidth; } else { // SPR_Draw 100's
x += iWidth;
// SPR_Draw 10's
x += iWidth;
// SPR_Draw ones
k = 0; icon_digits[ k ]->DrawSelf( x, y, clrDraw ); x += iWidth; }
return x; }
|