|
|
|
|
//========= Copyright <EFBFBD> 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
|
|
|
//
|
|
|
|
|
// Purpose:
|
|
|
|
|
//
|
|
|
|
|
// $Workfile: $
|
|
|
|
|
// $Date: $
|
|
|
|
|
//
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
// $Log: $
|
|
|
|
|
//
|
|
|
|
|
// $NoKeywords: $
|
|
|
|
|
//=============================================================================//
|
|
|
|
|
#if !defined( BASETEMPENTITY_H )
|
|
|
|
|
#define BASETEMPENTITY_H
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
|
#pragma once
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#include "edict.h"
|
|
|
|
|
|
|
|
|
|
// This is the base class for TEMP ENTITIES that use the
|
|
|
|
|
// event system to propagate
|
|
|
|
|
class CBaseTempEntity
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
DECLARE_CLASS_NOBASE( CBaseTempEntity );
|
|
|
|
|
DECLARE_SERVERCLASS();
|
|
|
|
|
|
|
|
|
|
CBaseTempEntity( const char *name );
|
|
|
|
|
virtual ~CBaseTempEntity( void );
|
|
|
|
|
|
|
|
|
|
const char *GetName( void );
|
|
|
|
|
|
|
|
|
|
// Force all derived classes to implement a test
|
|
|
|
|
virtual void Test( const Vector& current_origin, const QAngle& current_angles );
|
|
|
|
|
|
|
|
|
|
virtual void Create( IRecipientFilter& filter, float delay = 0.0 );
|
|
|
|
|
|
|
|
|
|
virtual void Precache( void );
|
|
|
|
|
|
|
|
|
|
CBaseTempEntity *GetNext( void );
|
|
|
|
|
|
|
|
|
|
// Get list of tempentities
|
|
|
|
|
static CBaseTempEntity *GetList( void );
|
|
|
|
|
|
|
|
|
|
// Called at startup to allow temp entities to precache any models/sounds that they need
|
|
|
|
|
static void PrecacheTempEnts( void );
|
|
|
|
|
|
|
|
|
|
void NetworkStateChanged() {} // TE's are sent out right away so we don't track whether state changes or not,
|
|
|
|
|
// but we want to allow CNetworkVars.
|
|
|
|
|
void NetworkStateChanged( void *pVar ) {}
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
// Descriptive name, for when running tests
|
|
|
|
|
const char *m_pszName;
|
|
|
|
|
|
|
|
|
|
// Next in chain
|
|
|
|
|
CBaseTempEntity *m_pNext;
|
|
|
|
|
|
|
|
|
|
// ConVars add themselves to this list for the executable. Then ConVarMgr::Init() runs through
|
|
|
|
|
// all the console variables and registers them.
|
|
|
|
|
static CBaseTempEntity *s_pTempEntities;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // BASETEMPENTITY_H
|