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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
//========= 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/EditablePanel.h>
#include <vgui_controls/ImagePanel.h>
#include <vgui/ISurface.h>
#include "c_dod_player.h"
#include "dodcornercutpanel.h"
#include "dod_hud_playerstatus_tnt.h"
#include "dod_gamerules.h"
#include "clientmode_dod.h"
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
CDoDHudTNT::CDoDHudTNT( vgui::Panel *parent, const char *name ) : CDoDCutEditablePanel( parent, name )
{
m_pIconTNT = new CIconPanel( this, "Icon_TNT" );
m_pIconTNT_Missing = new CIconPanel( this, "Icon_TNT_Missing" );
SetProportional( true );
LoadControlSettings( "resource/UI/HudPlayerStatusTNT.res" );
m_pIconTNT->SetVisible( false );
m_pIconTNT_Missing->SetVisible( true );
m_bHasTNT = false;
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CDoDHudTNT::ApplySchemeSettings( vgui::IScheme *pScheme )
{
LoadControlSettings( "resource/UI/HudPlayerStatusTNT.res" );
BaseClass::ApplySchemeSettings( pScheme );
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CDoDHudTNT::ApplySettings( KeyValues *inResourceData )
{
BaseClass::ApplySettings( inResourceData );
// Get icon loc, dims
m_iIconX = vgui::scheme()->GetProportionalScaledValueEx( GetScheme(), inResourceData->GetInt( "icon_x", 0 ) );
m_iIconY = vgui::scheme()->GetProportionalScaledValueEx( GetScheme(), inResourceData->GetInt( "icon_y", 0 ) );
m_iIconW = vgui::scheme()->GetProportionalScaledValueEx( GetScheme(), inResourceData->GetInt( "icon_w", 32 ) );
m_iIconH = vgui::scheme()->GetProportionalScaledValueEx( GetScheme(), inResourceData->GetInt( "icon_h", 32 ) );
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CDoDHudTNT::SetVisible( bool state )
{
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CDoDHudTNT::OnThink()
{
BaseClass::OnThink();
C_DODPlayer *pPlayer = C_DODPlayer::GetLocalDODPlayer();
if ( !pPlayer )
{
return;
}
if ( DODGameRules()->IsBombingTeam( pPlayer->GetTeamNumber() ) )
{
SetAlpha( 255 );
C_BaseCombatWeapon *pBomb = NULL;
for ( int i = 0; i < MAX_WEAPONS; i++ )
{
C_BaseCombatWeapon *pWeapon = pPlayer->GetWeapon( i );
if ( pWeapon == NULL )
{
continue;
}
if ( pWeapon->GetSlot() == WPN_SLOT_BOMB )
{
pBomb = pWeapon;
break;
}
}
if ( pBomb )
{
if ( m_bHasTNT == false )
{
m_bHasTNT = true;
m_pIconTNT->SetVisible( true );
m_pIconTNT_Missing->SetVisible( false );
}
}
else
{
if ( m_bHasTNT == true )
{
m_bHasTNT = false;
m_pIconTNT->SetVisible( false );
m_pIconTNT_Missing->SetVisible( true );
}
}
}
else
{
SetAlpha( 0 );
}
}
|