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 ) );
}
}
}
}
|