blob: 914af8a382847244b0954757a5472f67b3d5d399 (
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
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: PDA Weapon
//
//=============================================================================
#ifndef TF_WEAPON_PDA_H
#define TF_WEAPON_PDA_H
#ifdef _WIN32
#pragma once
#endif
#include "tf_shareddefs.h"
#include "tf_weaponbase.h"
#ifdef CLIENT_DLL
#include "tf_hud_base_build_menu.h"
#endif
// Client specific.
#if defined( CLIENT_DLL )
#define CTFWeaponPDA C_TFWeaponPDA
#define CTFWeaponPDA_Engineer_Build C_TFWeaponPDA_Engineer_Build
#define CTFWeaponPDA_Engineer_Destroy C_TFWeaponPDA_Engineer_Destroy
#define CTFWeaponPDA_Spy C_TFWeaponPDA_Spy
#define CTFWeaponPDA_Spy_Build C_TFWeaponPDA_Spy_Build
#define CTFWeaponPDAExpansion_Dispenser C_TFWeaponPDAExpansion_Dispenser
#define CTFWeaponPDAExpansion_Teleporter C_TFWeaponPDAExpansion_Teleporter
#endif
class CTFWeaponPDA : public CTFWeaponBase
{
public:
DECLARE_CLASS( CTFWeaponPDA, CTFWeaponBase );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
#if !defined( CLIENT_DLL )
DECLARE_DATADESC();
#endif
CTFWeaponPDA();
virtual void Spawn();
#if !defined( CLIENT_DLL )
virtual void Precache();
virtual void GetControlPanelInfo( int nPanelIndex, const char *&pPanelName );
#else
virtual float CalcViewmodelBob( void );
virtual CHudBaseBuildMenu *GetBuildMenu() const { return NULL; }
#endif
virtual bool ShouldShowControlPanels( void );
virtual void PrimaryAttack();
virtual void SecondaryAttack();
virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA; }
virtual bool ShouldDrawCrosshair( void ) { return false; }
virtual bool HasPrimaryAmmo() { return true; }
virtual bool CanBeSelected() { return true; }
#ifdef CLIENT_DLL
virtual void OnDataChanged( DataUpdateType_t type ) OVERRIDE;
virtual void UpdateOnRemove() OVERRIDE;
#endif
virtual const char *GetPanelName() { return "pda_panel"; }
public:
CTFWeaponInfo *m_pWeaponInfo;
private:
#ifdef CLIENT_DLL
void HideBuildMenu() const;
#endif
CTFWeaponPDA( const CTFWeaponPDA & ) {}
};
class CTFWeaponPDA_Engineer_Build : public CTFWeaponPDA
{
public:
DECLARE_CLASS( CTFWeaponPDA_Engineer_Build, CTFWeaponPDA );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
virtual const char *GetPanelName() { return ""; }
virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA_ENGINEER_BUILD; }
#ifdef CLIENT_DLL
virtual CHudBaseBuildMenu *GetBuildMenu() const OVERRIDE;
#endif
};
#ifdef CLIENT_DLL
extern ConVar tf_build_menu_controller_mode;
#endif
class CTFWeaponPDA_Engineer_Destroy : public CTFWeaponPDA
{
public:
DECLARE_CLASS( CTFWeaponPDA_Engineer_Destroy, CTFWeaponPDA );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
virtual const char *GetPanelName() { return ""; }
virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA_ENGINEER_DESTROY; }
#ifdef CLIENT_DLL
virtual CHudBaseBuildMenu *GetBuildMenu() const OVERRIDE;
#endif
virtual bool VisibleInWeaponSelection( void );
};
class CTFWeaponPDA_Spy : public CTFWeaponPDA
{
public:
DECLARE_CLASS( CTFWeaponPDA_Spy, CTFWeaponPDA );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
virtual const char *GetPanelName() { return ""; }
virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA_SPY; }
#ifdef CLIENT_DLL
virtual CHudBaseBuildMenu *GetBuildMenu() const OVERRIDE;
virtual bool Deploy( void );
#endif
virtual bool CanBeSelected( void ) OVERRIDE;
virtual bool VisibleInWeaponSelection( void ) OVERRIDE;
virtual void ItemPreFrame( void ); // called each frame by the player PreThink
virtual void ItemBusyFrame( void ); // called each frame by the player PostThink
virtual void ItemHolsterFrame( void ); // called each frame by the player PreThink, if the weapon is holstered
void CheckDisguiseTimer( void );
void ProcessDisguiseImpulse( void );
};
// ********************************************************************************************
// PDA Expansion Slots
class CTFWeaponPDAExpansion_Dispenser : public CTFWearable
{
DECLARE_CLASS( CTFWeaponPDAExpansion_Dispenser, CTFWearable );
public:
DECLARE_NETWORKCLASS();
DECLARE_DATADESC();
virtual void Equip( CBasePlayer *pOwner );
virtual void UnEquip( CBasePlayer *pOwner );
};
class CTFWeaponPDAExpansion_Teleporter : public CTFWearable
{
DECLARE_CLASS( CTFWeaponPDAExpansion_Teleporter, CTFWearable );
public:
DECLARE_NETWORKCLASS();
DECLARE_DATADESC();
virtual void Equip( CBasePlayer *pOwner );
virtual void UnEquip( CBasePlayer *pOwner );
};
#ifdef STAGING_ONLY
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
class CTFWeaponPDA_Spy_Build : public CTFWeaponPDA
{
public:
DECLARE_CLASS( CTFWeaponPDA_Spy_Build, CTFWeaponPDA );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
virtual bool CanDeploy( void ) OVERRIDE;
virtual const char *GetPanelName() { return ""; }
virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA_SPY_BUILD; }
virtual bool VisibleInWeaponSelection( void ) OVERRIDE;
#ifdef CLIENT_DLL
virtual CHudBaseBuildMenu *GetBuildMenu() const OVERRIDE;
#endif
float GetProgress( void );
int GetCount( void );
const char* GetEffectLabelText( void ) { return "#TF_Traps"; }
};
#endif
#endif // TF_WEAPON_PDA_H
|