85 lines
1.9 KiB
C++
85 lines
1.9 KiB
C++
//========= 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
|