//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef WEAPON_MORTAR_H #define WEAPON_MORTAR_H #ifdef _WIN32 #pragma once #endif class SmokeTrail; class CWeaponMortar; #include "tf_basecombatweapon.h" #include "particle_smokegrenade.h" #include "utllinkedlist.h" #include "tf_obj_mortar.h" //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- class CWeaponMortar : public CBaseTFCombatWeapon { DECLARE_CLASS( CWeaponMortar, CBaseTFCombatWeapon ); public: DECLARE_SERVERCLASS(); CWeaponMortar(); virtual void Precache(); // Input void Fire( float flPower, float flAccuracy ); void PrimaryAttack( void ); void SecondaryAttack( void ); // Deployment / Pick-up void DeployMortar( CObjectMortar *pMortar ); void PickupMortar( void ); void MortarDestroyed( void ); void MortarObjectRemoved( void ); // Turning void SetYaw( float flYaw ); // Firing virtual void ItemPostFrame( void ); virtual float GetFireRate( void ); // Ammo virtual void SetRoundType( int iRoundType ); virtual bool Deploy( void ); virtual void WeaponIdle( void ); virtual void GainedNewTechnology( CBaseTechnology *pTechnology ); virtual void AddAssociatedObject( CBaseObject *pObject ); virtual void RemoveAssociatedObject( CBaseObject *pObject ); virtual bool ComputeEMPFireState( void ); void MortarIsReloading( void ); void MortarFinishedReloading( void ); public: // Data bool m_bCarried; bool m_bMortarReloading; CHandle< CObjectMortar > m_hDeployedMortar; Vector m_vecMortarOrigin; QAngle m_vecMortarAngles; bool m_bRangeUpgraded; bool m_bAccuracyUpgraded; // Firing float m_flFiringPower; float m_flFiringAccuracy; }; #endif // WEAPON_MORTAR_H