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.
42 lines
1.0 KiB
42 lines
1.0 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
//=======================================================================================// |
|
|
|
#ifndef BASETHINKER_H |
|
#define BASETHINKER_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
#include "ithinker.h" |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
// |
|
// Adds/removes itself from think manager and implements a default ShouldThink(). |
|
// |
|
class CBaseThinker : public IThinker |
|
{ |
|
public: |
|
CBaseThinker(); |
|
virtual ~CBaseThinker(); |
|
|
|
protected: |
|
virtual void Think(); |
|
virtual bool ShouldThink() const; |
|
virtual void PostThink(); |
|
|
|
// Derived classes must implement this. |
|
// Return 0 to think every frame. |
|
// Return -1 to never think. |
|
virtual float GetNextThinkTime() const = 0; |
|
|
|
private: |
|
float m_flNextThinkTime; |
|
}; |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
#endif // BASETHINKER_H
|
|
|