blob: efa7b95a217ffc595421f9b6c015b50f8ffce55f (
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
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef C_TF_WEAPON_BUILDER_H
#define C_TF_WEAPON_BUILDER_H
#ifdef _WIN32
#pragma once
#endif
#include "tf_weaponbase.h"
#include "c_baseobject.h"
#define CTFWeaponBuilder C_TFWeaponBuilder
#define CTFWeaponSapper C_TFWeaponSapper
//=============================================================================
// Purpose: Client version of CWeaponBuiler
//=============================================================================
class C_TFWeaponBuilder : public C_TFWeaponBase
{
DECLARE_CLASS( C_TFWeaponBuilder, C_TFWeaponBase );
public:
DECLARE_CLIENTCLASS();
DECLARE_PREDICTABLE();
C_TFWeaponBuilder();
~C_TFWeaponBuilder();
virtual void Redraw();
virtual void SecondaryAttack();
virtual bool IsPlacingObject( void );
virtual const char *GetCurrentSelectionObjectName( void );
virtual const char *GetViewModel( int iViewModel ) const;
virtual const char *GetWorldModel( void ) const;
virtual bool Deploy( void );
virtual void PostDataUpdate( DataUpdateType_t type );
C_BaseObject *GetPlacementModel( void ) { return m_hObjectBeingBuilt.Get(); }
virtual void UpdateAttachmentModels( void );
virtual int GetSlot( void ) const;
virtual int GetPosition( void ) const;
void SetupObjectSelectionSprite( void );
virtual CHudTexture const *GetSpriteActive( void ) const;
virtual CHudTexture const *GetSpriteInactive( void ) const;
virtual const char *GetPrintName( void ) const;
virtual int GetSubType( void );
virtual bool CanBeSelected( void );
virtual bool VisibleInWeaponSelection( void );
virtual bool HasAmmo( void );
virtual int GetWeaponID( void ) const { return TF_WEAPON_BUILDER; }
int GetType( void ) { return m_iObjectType; }
bool CanBuildObjectType( int iObjectType );
virtual Activity GetDrawActivity( void );
virtual CStudioHdr *OnNewModel( void );
virtual float InternalGetEffectBarRechargeTime( void ) { return 15.0; }
virtual int GetEffectBarAmmo( void ) { return TF_AMMO_GRENADES2; }
float GetProgress( void ) { return GetEffectBarProgress(); }
const char* GetEffectLabelText( void ) { return "#TF_Sapper"; }
virtual bool EffectMeterShouldFlash( void );
public:
// Builder Data
int m_iBuildState;
unsigned int m_iObjectType;
unsigned int m_iObjectMode;
float m_flStartTime;
float m_flTotalTime;
CHudTexture *m_pSelectionTextureActive;
CHudTexture *m_pSelectionTextureInactive;
// Our placement model
CHandle<C_BaseObject> m_hObjectBeingBuilt;
int m_iValidBuildPoseParam;
// Wheatly Data
float m_flWheatleyTalkingUntil;
private:
C_TFWeaponBuilder( const C_TFWeaponBuilder & );
bool m_aBuildableObjectTypes[OBJ_LAST];
};
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
class C_TFWeaponSapper : public C_TFWeaponBuilder, public ITFChargeUpWeapon
{
DECLARE_CLASS( C_TFWeaponSapper, C_TFWeaponBuilder );
public:
DECLARE_NETWORKCLASS();
//DECLARE_PREDICTABLE();
// ITFChargeUpWeapon
virtual bool CanCharge( void ) { return GetChargeMaxTime() > 0; }
virtual float GetChargeBeginTime( void ) { return m_flChargeBeginTime; }
virtual float GetChargeMaxTime( void ) { float flChargeTime = 0; CALL_ATTRIB_HOOK_FLOAT( flChargeTime, sapper_deploy_time ); return flChargeTime; };
virtual const char *GetViewModel( int iViewModel ) const;
virtual const char *GetWorldModel( void ) const;
bool IsWheatleyTalking( void ) { return gpGlobals->curtime <= m_flWheatleyTalkingUntil; }
CNetworkVar( float, m_flChargeBeginTime );
};
#endif // C_TF_WEAPON_BUILDER_H
|