summaryrefslogtreecommitdiff
path: root/game/client/dod/dod_hud_playerstatus_weapon.cpp
blob: 1301e354f303db94f9e21a5548f0128d058c9761 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
//=============================================================================//

#include "cbase.h"
#include <KeyValues.h>
#include <vgui/IScheme.h>
#include <vgui/ISurface.h>
#include <vgui/ISystem.h>
#include <vgui_controls/AnimationController.h>
#include <vgui_controls/EditablePanel.h>
#include <vgui_controls/ImagePanel.h>

#include "c_dod_team.h"
#include "c_dod_playerresource.h"
#include "c_dod_player.h"

#include "weapon_dodbase.h"

#include "dod_hud_playerstatus_weapon.h"

float GetScale( int nIconWidth, int nIconHeight, int nWidth, int nHeight );

//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
void CDoDHudCurrentWeapon::Paint()
{
	C_DODPlayer *pPlayer = C_DODPlayer::GetLocalDODPlayer();
	if ( pPlayer )
	{
		C_WeaponDODBase *pWeapon = pPlayer->GetActiveDODWeapon();

		if ( pWeapon )
		{
			const CHudTexture *pWpnSprite = pWeapon->GetSpriteActive();

			if ( pWpnSprite )
			{
				int x, y, w, h;
				GetBounds( x, y, w, h );

				int spriteWidth = pWpnSprite->Width(), spriteHeight = pWpnSprite->Height();
				float scale = GetScale( spriteWidth, spriteHeight, w, h );

				spriteWidth *= scale;
				spriteHeight *= scale;

				int xpos = ( w / 2.0f ) - ( spriteWidth / 2.0f );
				int ypos = ( h / 2.0f ) - ( spriteHeight / 2.0f );

				pWpnSprite->DrawSelf( xpos, ypos, spriteWidth, spriteHeight, Color( 255, 255, 255, 255 ) );
			}
		}
	}
}