//========= Copyright Valve Corporation, All rights reserved. ============// #ifndef WEAPON_BASEHL2MPCOMBATWEAPON_SHARED_H #define WEAPON_BASEHL2MPCOMBATWEAPON_SHARED_H #ifdef _WIN32 #pragma once #endif #ifdef CLIENT_DLL #include "c_hl2mp_player.h" #else #include "hl2mp_player.h" #endif #include "weapon_hl2mpbase.h" #if defined(CLIENT_DLL) #define CBaseHL2MPCombatWeapon C_BaseHL2MPCombatWeapon #endif class CBaseHL2MPCombatWeapon : public CWeaponHL2MPBase { #if !defined(CLIENT_DLL) DECLARE_DATADESC(); #endif DECLARE_CLASS(CBaseHL2MPCombatWeapon, CWeaponHL2MPBase); public: DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE(); CBaseHL2MPCombatWeapon(); virtual bool WeaponShouldBeLowered(void); 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); 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 private: CBaseHL2MPCombatWeapon(const CBaseHL2MPCombatWeapon &); }; #endif // WEAPON_BASEHL2MPCOMBATWEAPON_SHARED_H