#ifndef C_BASETEMPENTITY_H #define C_BASETEMPENTITY_H #ifdef _WIN32 #pragma once #endif #include "client_class.h" #include "iclientnetworkable.h" #include "c_recipientfilter.h" class C_BaseTempEntity : public IClientUnknown, public IClientNetworkable { public: DECLARE_CLASS_NOBASE(C_BaseTempEntity); DECLARE_CLIENTCLASS(); C_BaseTempEntity(void); virtual ~C_BaseTempEntity(void); public: virtual void SetRefEHandle(const CBaseHandle& handle) { Assert(false); } virtual const CBaseHandle& GetRefEHandle() const { return *((CBaseHandle*)0); } virtual IClientUnknown* GetIClientUnknown() { return this; } virtual ICollideable* GetCollideable() { return 0; } virtual IClientNetworkable* GetClientNetworkable() { return this; } virtual IClientRenderable* GetClientRenderable() { return 0; } virtual IClientEntity* GetIClientEntity() { return 0; } virtual C_BaseEntity* GetBaseEntity() { return 0; } virtual IClientThinkable* GetClientThinkable() { return 0; } virtual IClientModelRenderable* GetClientModelRenderable() { return 0; } virtual IClientAlphaProperty* GetClientAlphaProperty() { return 0; } public: virtual void Release(); virtual void NotifyShouldTransmit(ShouldTransmitState_t state); virtual void PreDataUpdate(DataUpdateType_t updateType); virtual void PostDataUpdate(DataUpdateType_t updateType); virtual void OnPreDataChanged(DataUpdateType_t updateType); virtual void OnDataChanged(DataUpdateType_t updateType); virtual void SetDormant(bool bDormant); virtual bool IsDormant(void); virtual int entindex(void) const; virtual void ReceiveMessage(int classID, bf_read& msg); virtual void* GetDataTableBasePtr(); virtual void SetDestroyedOnRecreateEntities(void); public: void NetworkStateChanged() {} void NetworkStateChanged(void* pVar) {} virtual bool Init(int entnum, int iSerialNum); virtual void Precache(void); virtual bool ShouldDestroy(void) { return false; }; C_BaseTempEntity* GetNext(void); static C_BaseTempEntity* GetList(void); C_BaseTempEntity* GetNextDynamic(void); void GetColorModulation(float* color) { assert(color); color[0] = color[1] = color[2] = 1.0f; } virtual bool ShouldReceiveProjectedTextures(int flags) { return false; } public: static C_BaseTempEntity* GetDynamicList(); static void PrecacheTempEnts(void); static void ClearDynamicTempEnts(void); static void CheckDynamicTempEnts(void); private: C_BaseTempEntity* m_pNext; C_BaseTempEntity* m_pNextDynamic; static C_BaseTempEntity* s_pTempEntities; static C_BaseTempEntity* s_pDynamicEntities; }; #endif