//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #include "basecombatweapon_shared.h" #ifndef BASEHLCOMBATWEAPON_SHARED_H #define BASEHLCOMBATWEAPON_SHARED_H #ifdef _WIN32 #pragma once #endif #if defined(CLIENT_DLL) #define CBaseHLCombatWeapon C_BaseHLCombatWeapon #endif class CBaseHLCombatWeapon : public CBaseCombatWeapon { #if !defined(CLIENT_DLL) #ifndef _XBOX DECLARE_DATADESC(); #else protected: DECLARE_DATADESC(); private: #endif #endif DECLARE_CLASS(CBaseHLCombatWeapon, CBaseCombatWeapon); public: DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE(); virtual bool WeaponShouldBeLowered(void); bool CanLower(); virtual bool Ready(void); virtual bool Lower(void); virtual bool Deploy(void); virtual bool Holster(CBaseCombatWeapon *pSwitchingTo); virtual void WeaponIdle(void); virtual void AddViewmodelBob(CBaseViewModel *viewmodel, Vector &origin, QAngle &angles); virtual float CalcViewmodelBob(void); virtual Vector GetBulletSpread(WeaponProficiency_t proficiency); virtual float GetSpreadBias(WeaponProficiency_t proficiency); virtual const WeaponProficiencyInfo_t *GetProficiencyValues(); static const WeaponProficiencyInfo_t *GetDefaultProficiencyValues(); virtual void ItemHolsterFrame(void); int m_iPrimaryAttacks; // # of primary attacks performed with this weapon int m_iSecondaryAttacks; // # of secondary attacks performed with this // weapon protected: bool m_bLowered; // Whether the viewmodel is raised or lowered float m_flRaiseTime; // If lowered, the time we should raise the viewmodel float m_flHolsterTime; // When the weapon was holstered }; #endif // BASEHLCOMBATWEAPON_SHARED_H