diff options
Diffstat (limited to 'public/iclientthinkable.h')
| -rw-r--r-- | public/iclientthinkable.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/public/iclientthinkable.h b/public/iclientthinkable.h new file mode 100644 index 0000000..4adc8bb --- /dev/null +++ b/public/iclientthinkable.h @@ -0,0 +1,41 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef ICLIENTTHINKABLE_H +#define ICLIENTTHINKABLE_H +#ifdef _WIN32 +#pragma once +#endif + + +#include "iclientunknown.h" + + +class CClientThinkHandlePtr; +typedef CClientThinkHandlePtr* ClientThinkHandle_t; + + +// Entities that implement this interface can be put into the client think list. +abstract_class IClientThinkable +{ +public: + // Gets at the containing class... + virtual IClientUnknown* GetIClientUnknown() = 0; + + virtual void ClientThink() = 0; + + // Called when you're added to the think list. + // GetThinkHandle's return value must be initialized to INVALID_THINK_HANDLE. + virtual ClientThinkHandle_t GetThinkHandle() = 0; + virtual void SetThinkHandle( ClientThinkHandle_t hThink ) = 0; + + // Called by the client when it deletes the entity. + virtual void Release() = 0; +}; + + +#endif // ICLIENTTHINKABLE_H |