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.
107 lines
2.4 KiB
107 lines
2.4 KiB
5 years ago
|
//========= 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
|
||
|
|