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 "cbase.h"
#include "rotorwash.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
// ==============================================
// Rotorwash entity
// ==============================================
class CRotorWashEmitter : public CBaseEntity { public: DECLARE_CLASS( CRotorWashEmitter, CBaseEntity ); DECLARE_SERVERCLASS(); DECLARE_DATADESC();
void SetAltitude( float flAltitude ) { m_flAltitude = flAltitude; } void SetEmit( bool state ) { m_bEmit = state; } void Spawn ( void ); void Precache( void ); int ShouldTransmit( const CCheckTransmitInfo *pInfo ); int UpdateTransmitState( void );
protected:
CNetworkVar( bool, m_bEmit ); CNetworkVar( float, m_flAltitude ); };
IMPLEMENT_SERVERCLASS_ST( CRotorWashEmitter, DT_RotorWashEmitter ) SendPropFloat(SENDINFO(m_flAltitude), -1, SPROP_NOSCALE ), END_SEND_TABLE()
LINK_ENTITY_TO_CLASS( env_rotorwash_emitter, CRotorWashEmitter );
BEGIN_DATADESC( CRotorWashEmitter ) DEFINE_FIELD( m_bEmit, FIELD_BOOLEAN ), DEFINE_KEYFIELD( m_flAltitude, FIELD_FLOAT, "altitude" ), END_DATADESC()
void CRotorWashEmitter::Spawn( void ) { Precache(); BaseClass::Spawn(); SetEmit( false ); }
void CRotorWashEmitter::Precache( void ) { PrecacheMaterial( "effects/splashwake3" ); }
int CRotorWashEmitter::ShouldTransmit( const CCheckTransmitInfo *pInfo ) { if ( GetParent() ) { return GetParent()->ShouldTransmit( pInfo ); }
return FL_EDICT_PVSCHECK; }
int CRotorWashEmitter::UpdateTransmitState( void ) { if ( GetParent() ) { return SetTransmitState( FL_EDICT_FULLCHECK ); }
return SetTransmitState( FL_EDICT_PVSCHECK ); }
//-----------------------------------------------------------------------------
// Purpose:
// Input : &localOrigin -
// &localAngles -
// *pOwner -
// flAltitude -
// Output : CBaseEntity
//-----------------------------------------------------------------------------
CBaseEntity *CreateRotorWashEmitter( const Vector &localOrigin, const QAngle &localAngles, CBaseEntity *pOwner, float flAltitude ) { CRotorWashEmitter *pEmitter = (CRotorWashEmitter *) CreateEntityByName( "env_rotorwash_emitter" );
if ( pEmitter == NULL ) return NULL;
pEmitter->SetAbsOrigin( localOrigin ); pEmitter->SetAbsAngles( localAngles ); pEmitter->FollowEntity( pOwner );
pEmitter->SetAltitude( flAltitude ); pEmitter->SetEmit( false );
return pEmitter; }
|