You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.4 KiB
106 lines
2.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#include "basehlcombatweapon.h" |
|
#include "soundenvelope.h" |
|
|
|
#ifndef WEAPON_FLAREGUN_H |
|
#define WEAPON_FLAREGUN_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#define SF_FLARE_NO_DLIGHT 0x00000001 |
|
#define SF_FLARE_NO_SMOKE 0x00000002 |
|
#define SF_FLARE_INFINITE 0x00000004 |
|
#define SF_FLARE_START_OFF 0x00000008 |
|
|
|
#define FLARE_DURATION 30.0f |
|
#define FLARE_DECAY_TIME 10.0f |
|
#define FLARE_BLIND_TIME 6.0f |
|
|
|
//--------------------- |
|
// Flare |
|
//--------------------- |
|
|
|
class CFlare : public CBaseCombatCharacter |
|
{ |
|
public: |
|
DECLARE_CLASS( CFlare, CBaseCombatCharacter ); |
|
|
|
CFlare(); |
|
~CFlare(); |
|
|
|
static CFlare * GetActiveFlares( void ); |
|
CFlare * GetNextFlare( void ) const { return m_pNextFlare; } |
|
|
|
static CFlare *Create( Vector vecOrigin, QAngle vecAngles, CBaseEntity *pOwner, float lifetime ); |
|
|
|
virtual unsigned int PhysicsSolidMaskForEntity( void ) const; |
|
|
|
void Spawn( void ); |
|
void Precache( void ); |
|
int Restore( IRestore &restore ); |
|
void Activate( void ); |
|
|
|
void StartBurnSound( void ); |
|
|
|
void Start( float lifeTime ); |
|
void Die( float fadeTime ); |
|
void Launch( const Vector &direction, float speed ); |
|
|
|
Class_T Classify( void ); |
|
|
|
void FlareTouch( CBaseEntity *pOther ); |
|
void FlareBurnTouch( CBaseEntity *pOther ); |
|
void FlareThink( void ); |
|
|
|
void InputStart( inputdata_t &inputdata ); |
|
void InputDie( inputdata_t &inputdata ); |
|
void InputLaunch( inputdata_t &inputdata ); |
|
|
|
DECLARE_SERVERCLASS(); |
|
DECLARE_DATADESC(); |
|
|
|
static CFlare *activeFlares; |
|
|
|
CBaseEntity *m_pOwner; |
|
int m_nBounces; // how many times has this flare bounced? |
|
CNetworkVar( float, m_flTimeBurnOut ); // when will the flare burn out? |
|
CNetworkVar( float, m_flScale ); |
|
float m_flDuration; |
|
float m_flNextDamage; |
|
|
|
CSoundPatch *m_pBurnSound; |
|
bool m_bFading; |
|
CNetworkVar( bool, m_bLight ); |
|
CNetworkVar( bool, m_bSmoke ); |
|
CNetworkVar( bool, m_bPropFlare ); |
|
|
|
bool m_bInActiveList; |
|
CFlare * m_pNextFlare; |
|
|
|
void RemoveFromActiveFlares( void ); |
|
void AddToActiveFlares( void ); |
|
}; |
|
|
|
//--------------------- |
|
// Flaregun |
|
//--------------------- |
|
class CFlaregun:public CBaseHLCombatWeapon |
|
{ |
|
public: |
|
DECLARE_CLASS( CFlaregun, CBaseHLCombatWeapon ); |
|
|
|
DECLARE_SERVERCLASS(); |
|
|
|
void Precache( void ); |
|
void PrimaryAttack( void ); |
|
void SecondaryAttack( void ); |
|
}; |
|
|
|
#endif // WEAPON_FLAREGUN_H |
|
|
|
|