forked from metin2/server
35 lines
594 B
C
35 lines
594 B
C
|
#ifndef _fsm_fsm_h
|
||
|
#define _fsm_fsm_h
|
||
|
|
||
|
// Local Includes
|
||
|
#include "state.h"
|
||
|
|
||
|
// FSM Class
|
||
|
class CFSM
|
||
|
{
|
||
|
protected:
|
||
|
CState * m_pCurrentState; // Current State
|
||
|
CState * m_pNewState; // New State
|
||
|
CStateTemplate<CFSM> m_stateInitial; // Initial State
|
||
|
|
||
|
public:
|
||
|
// Constructor
|
||
|
CFSM();
|
||
|
|
||
|
// Destructor
|
||
|
virtual ~CFSM() {}
|
||
|
|
||
|
// Global Functions
|
||
|
virtual void Update();
|
||
|
|
||
|
// State Functions
|
||
|
bool IsState(CState &State) const;
|
||
|
bool GotoState(CState &NewState);
|
||
|
|
||
|
virtual void BeginStateInitial() {}
|
||
|
virtual void StateInitial() {}
|
||
|
virtual void EndStateInitial() {}
|
||
|
};
|
||
|
|
||
|
#endif
|