//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #ifndef WEAPON_HL2MPBASE_H #define WEAPON_HL2MPBASE_H #ifdef _WIN32 #pragma once #endif #include "basecombatweapon_shared.h" #include "hl2mp_player_shared.h" #include "hl2mp_weapon_parse.h" #if defined(CLIENT_DLL) #define CWeaponHL2MPBase C_WeaponHL2MPBase void UTIL_ClipPunchAngleOffset(QAngle &in, const QAngle &punch, const QAngle &clip); #endif class CHL2MP_Player; // These are the names of the ammo types that go in the CAmmoDefs and that the // weapon script files reference. // Given an ammo type (like from a weapon's GetPrimaryAmmoType()), this compares // it against the ammo name you specify. MIKETODO: this should use indexing // instead of searching and strcmp()'ing all the time. bool IsAmmoType(int iAmmoType, const char *pAmmoName); class CWeaponHL2MPBase : public CBaseCombatWeapon { public: DECLARE_CLASS(CWeaponHL2MPBase, CBaseCombatWeapon); DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE(); CWeaponHL2MPBase(); #ifdef GAME_DLL DECLARE_DATADESC(); void SendReloadSoundEvent(void); void Materialize(void); virtual int ObjectCaps(void); #endif // All predicted weapons need to implement and return true virtual bool IsPredicted() const; CBasePlayer *GetPlayerOwner() const; CHL2MP_Player *GetHL2MPPlayerOwner() const; void WeaponSound(WeaponSound_t sound_type, float soundtime = 0.0f); CHL2MPSWeaponInfo const &GetHL2MPWpnData() const; virtual void FireBullets(const FireBulletsInfo_t &info); virtual void FallInit(void); public: #if defined(CLIENT_DLL) virtual bool ShouldPredict(); virtual void OnDataChanged(DataUpdateType_t type); virtual bool OnFireEvent(C_BaseViewModel *pViewModel, const Vector &origin, const QAngle &angles, int event, const char *options); #else virtual void Spawn(); #endif float m_flPrevAnimTime; float m_flNextResetCheckTime; Vector GetOriginalSpawnOrigin(void) { return m_vOriginalSpawnOrigin; } QAngle GetOriginalSpawnAngles(void) { return m_vOriginalSpawnAngles; } private: CWeaponHL2MPBase(const CWeaponHL2MPBase &); Vector m_vOriginalSpawnOrigin; QAngle m_vOriginalSpawnAngles; }; #endif // WEAPON_HL2MPBASE_H