Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//========= 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
|