You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.8 KiB
82 lines
1.8 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef WEAPON_BASECSGRENADE_H |
|
#define WEAPON_BASECSGRENADE_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
|
|
#include "weapon_csbase.h" |
|
|
|
|
|
#ifdef CLIENT_DLL |
|
|
|
#define CBaseCSGrenade C_BaseCSGrenade |
|
|
|
#endif |
|
|
|
|
|
class CBaseCSGrenade : public CWeaponCSBase |
|
{ |
|
public: |
|
DECLARE_CLASS( CBaseCSGrenade, CWeaponCSBase ); |
|
DECLARE_NETWORKCLASS(); |
|
DECLARE_PREDICTABLE(); |
|
|
|
CBaseCSGrenade(); |
|
|
|
virtual void Precache(); |
|
|
|
bool Deploy(); |
|
bool Holster( CBaseCombatWeapon *pSwitchingTo ); |
|
|
|
void PrimaryAttack(); |
|
void SecondaryAttack(); |
|
|
|
// virtual float GetSpread() const; |
|
|
|
bool Reload(); |
|
|
|
virtual void ItemPostFrame(); |
|
|
|
void DecrementAmmo( CBaseCombatCharacter *pOwner ); |
|
virtual void StartGrenadeThrow(); |
|
virtual void ThrowGrenade(); |
|
virtual void DropGrenade(); |
|
|
|
bool IsPinPulled() const; |
|
bool IsBeingThrown() const { return m_fThrowTime > 0; } |
|
|
|
#ifndef CLIENT_DLL |
|
DECLARE_DATADESC(); |
|
|
|
virtual bool AllowsAutoSwitchFrom( void ) const; |
|
|
|
int CapabilitiesGet(); |
|
|
|
// Each derived grenade class implements this. |
|
virtual void EmitGrenade( Vector vecSrc, QAngle vecAngles, Vector vecVel, AngularImpulse angImpulse, CBasePlayer *pPlayer ); |
|
#endif |
|
|
|
protected: |
|
CNetworkVar( bool, m_bRedraw ); // Draw the weapon again after throwing a grenade |
|
CNetworkVar( bool, m_bPinPulled ); // Set to true when the pin has been pulled but the grenade hasn't been thrown yet. |
|
CNetworkVar( float, m_fThrowTime ); // the time at which the grenade will be thrown. If this value is 0 then the time hasn't been set yet. |
|
|
|
private: |
|
CBaseCSGrenade( const CBaseCSGrenade & ) {} |
|
}; |
|
|
|
|
|
inline bool CBaseCSGrenade::IsPinPulled() const |
|
{ |
|
return m_bPinPulled; |
|
} |
|
|
|
|
|
#endif // WEAPON_BASECSGRENADE_H
|
|
|