blob: 1efe467ea6abe08bb79fdf79c4276d0056735cff (
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
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef WEAPON_MG42_H
#define WEAPON_MG42_H
#ifdef _WIN32
#pragma once
#endif
#include "weapon_dodbase.h"
#include "weapon_dodbipodgun.h"
#if defined( CLIENT_DLL )
#define CWeaponMG42 C_WeaponMG42
#endif
#define COOL_CONTEXT "CoolContext"
class CWeaponMG42 : public CDODBipodWeapon
{
public:
DECLARE_CLASS( CWeaponMG42, CDODBipodWeapon );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
DECLARE_ACTTABLE();
#ifdef GAME_DLL
DECLARE_DATADESC();
#endif
CWeaponMG42() {}
#ifdef CLIENT_DLL
virtual ~CWeaponMG42();
#endif
virtual DODWeaponID GetWeaponID( void ) const { return WEAPON_MG42; }
// weapon id for stats purposes
virtual DODWeaponID GetStatsWeaponID( void )
{
if ( !IsDeployed() )
return WEAPON_MG42_UNDEPLOYED;
else
return WEAPON_MG42;
}
virtual void Spawn();
virtual void Precache();
virtual void PrimaryAttack( void );
virtual bool Reload( void );
virtual void FinishReload( void );
virtual void ItemPostFrame( void );
virtual void ItemBusyFrame( void );
void ItemFrameCool( void );
virtual bool Deploy( void );
virtual bool Holster( CBaseCombatWeapon *pSwitchingTo );
virtual void Drop( const Vector &vecVelocity );
virtual Activity GetReloadActivity( void );
virtual Activity GetDrawActivity( void );
virtual Activity GetDeployActivity( void );
virtual Activity GetUndeployActivity( void );
virtual Activity GetIdleActivity( void );
virtual Activity GetPrimaryAttackActivity( void );
int GetWeaponHeat( void ) { return m_iWeaponHeat; }
virtual bool ShouldDrawCrosshair( void ) { return IsDeployed(); }
void Cool( void );
#ifdef CLIENT_DLL
virtual void ClientThink( void );
virtual void OnDataChanged( DataUpdateType_t updateType );
virtual void CleanupToolRecordingState( KeyValues *msg );
void EmitSmokeParticle( void );
#else
void CoolThink( void );
#endif
virtual float GetRecoil( void );
private:
CWeaponMG42( const CWeaponMG42 & );
CNetworkVar( int, m_iWeaponHeat );
CNetworkVar( float, m_flNextCoolTime );
CNetworkVar( bool, m_bOverheated );
#ifdef CLIENT_DLL
CSmartPtr<CSimpleEmitter> m_pEmitter;
float m_flParticleAccumulator;
PMaterialHandle m_hParticleMaterial;
#endif
};
#endif //WEAPON_MG42_H
|