diff options
Diffstat (limited to 'game/server/hl2/weapon_slam.h')
| -rw-r--r-- | game/server/hl2/weapon_slam.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/game/server/hl2/weapon_slam.h b/game/server/hl2/weapon_slam.h new file mode 100644 index 0000000..8c0b473 --- /dev/null +++ b/game/server/hl2/weapon_slam.h @@ -0,0 +1,83 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: SLAM +// +// $Workfile: $ +// $Date: $ +// +//----------------------------------------------------------------------------- +// $Log: $ +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef WEAPONSLAM_H +#define WEAPONSLAM_H +#ifndef HL2MP + +#include "basegrenade_shared.h" +#include "basehlcombatweapon.h" + +enum SlamState_t +{ + SLAM_TRIPMINE_READY, + SLAM_SATCHEL_THROW, + SLAM_SATCHEL_ATTACH, +}; + +class CWeapon_SLAM : public CBaseHLCombatWeapon +{ +public: + DECLARE_CLASS( CWeapon_SLAM, CBaseHLCombatWeapon ); + + DECLARE_SERVERCLASS(); + + SlamState_t m_tSlamState; + bool m_bDetonatorArmed; + bool m_bNeedDetonatorDraw; + bool m_bNeedDetonatorHolster; + bool m_bNeedReload; + bool m_bClearReload; + bool m_bThrowSatchel; + bool m_bAttachSatchel; + bool m_bAttachTripmine; + float m_flWallSwitchTime; + + void Spawn( void ); + void Precache( void ); + + int CapabilitiesGet( void ) { return bits_CAP_WEAPON_RANGE_ATTACK1; } + void PrimaryAttack( void ); + void SecondaryAttack( void ); + void WeaponIdle( void ); + void WeaponSwitch( void ); + void SLAMThink( void ); + + void SetPickupTouch( void ); + void SlamTouch( CBaseEntity *pOther ); // default weapon touch + void ItemPostFrame( void ); + bool Reload( void ); + void SetSlamState( SlamState_t newState ); + bool CanAttachSLAM(void); // In position where can attach SLAM? + bool AnyUndetonatedCharges(void); + void StartTripmineAttach( void ); + void TripmineAttach( void ); + + void StartSatchelDetonate( void ); + void SatchelDetonate( void ); + void StartSatchelThrow( void ); + void StartSatchelAttach( void ); + void SatchelThrow( void ); + void SatchelAttach( void ); + bool Deploy( void ); + bool Holster( CBaseCombatWeapon *pSwitchingTo = NULL ); + + + CWeapon_SLAM(); + + DECLARE_ACTTABLE(); + DECLARE_DATADESC(); +}; + +#endif //HL2MP +#endif //WEAPONSLAM_H |