summaryrefslogtreecommitdiff
path: root/game/shared/tf/tf_weapon_fists.h
blob: 647e9758335778452d4cf9ae801b98df6b367010 (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
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
//=============================================================================

#ifndef TF_WEAPON_FISTS_H
#define TF_WEAPON_FISTS_H
#ifdef _WIN32
#pragma once
#endif

#include "tf_weaponbase_melee.h"

#ifdef CLIENT_DLL
#define CTFFists C_TFFists
#endif

enum fisttypes_t
{
	FISTTYPE_BASE = 0,
	FISTTYPE_RADIAL_BUFF,
	FISTTYPE_GRU,
};

//=============================================================================
//
// Fists weapon class.
//
class CTFFists : public CTFWeaponBaseMelee
{
public:

	DECLARE_CLASS( CTFFists, CTFWeaponBaseMelee );
	DECLARE_NETWORKCLASS(); 
	DECLARE_PREDICTABLE();

	CTFFists() {}
	virtual int			GetWeaponID( void ) const			{ return TF_WEAPON_FISTS; }

	virtual void ItemPreFrame();
	virtual void PrimaryAttack();
	virtual void SecondaryAttack();
	virtual bool Holster( CBaseCombatWeapon *pSwitchingTo );

	virtual void SendPlayerAnimEvent( CTFPlayer *pPlayer );

	virtual void DoViewModelAnimation( void );

	virtual bool HideWhileStunned( void ) { return false; }

	void Punch( void );

#ifdef GAME_DLL
	virtual void OnEntityHit( CBaseEntity *pEntity, CTakeDamageInfo *info );
#endif

	virtual bool AllowTaunts( void );

	int			 GetFistType( void ) { int iMode = 0; CALL_ATTRIB_HOOK_INT( iMode, set_weapon_mode ); return iMode; };

	virtual void	SetWeaponVisible( bool visible ){}  // intentionally never hiding the fists

private:

	CTFFists( const CTFFists & ) {}
};

#endif // TF_WEAPON_FISTS_H