69 lines
1.8 KiB
C++
69 lines
1.8 KiB
C++
//========= Copyright 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 ¤t_origin,
|
|
const QAngle ¤t_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
|