43 using EventMap = std::map<unsigned int, CFsmEvent*>;
70 void SetParamRef(
void* pParam);
94 void RegisterAction(
void* pAction,
void*
pContext);
101 void RegisterCondition(
void* pCondition,
void* pContext);
115 void SetNextState(
unsigned int nextState);
140 bool ApplyConditions()
const;
147 bool RunActions()
const;
180 virtual void Setup();
191 void AddState(
unsigned int state);
198 CFsmEvent* AddEvent(
unsigned int eventType);
204 CFsmTransition* AddTransition(
unsigned int state,
unsigned int eventType,
unsigned int nextState );
210 CFsmTransition* AddTransition(
unsigned int state,
unsigned int eventType,
unsigned int nextState,
216 CFsmTransition* GetTransition(
unsigned int state,
unsigned int eventType)
const;
217 CFsmTransition* GetEventTransition (
unsigned int eventType)
const;
222 void SetFirstState(
unsigned int firstState);
227 void SetCurrState(
unsigned int state);
235 m_NextState = nextState;
255 return m_Transitions;
262 bool Update(
unsigned int eventType,
void* pEventData);
267 bool IsValidState(
unsigned int state)
const;
272 bool IsValidEvent(
unsigned int eventType)
const;
278 virtual bool IsDone()
const;
284 bool IsFirstTime()
const;
#define NONCOPYABLE(className)
Indicates that a class is noncopyable (usually due to const or reference members, or because the clas...
Definition: code_annotation.h:227
CFsmEvent * GetEvent() const
Definition: FSM.h:107
Manages states, events, actions and transitions between states.
Definition: FSM.h:168
unsigned int m_NextState
Definition: FSM.h:289
void Shutdown(int flags)
Definition: GameSetup.cpp:339
const CallbackList & GetConditions() const
Definition: FSM.h:131
Represents a signal in the state machine that a change has occurred.
Definition: FSM.h:52
CFsmEvent * m_Event
Definition: FSM.h:152
bool(void *pContext, const CFsmEvent *pEvent) Action
Definition: FSM.h:34
unsigned int m_Type
Definition: FSM.h:73
void * pFunction
Definition: FSM.h:38
bool m_Done
Definition: FSM.h:286
unsigned int GetCurrState() const
Definition: FSM.h:121
void * pContext
Definition: FSM.h:39
const TransitionList & GetTransitions() const
Definition: FSM.h:253
unsigned int GetCurrState() const
Definition: FSM.h:228
unsigned int GetType() const
Definition: FSM.h:60
const StateSet & GetStates() const
Definition: FSM.h:243
bool(void *pContext) Condition
Definition: FSM.h:33
void * m_Param
Definition: FSM.h:74
void SetNextState(unsigned int nextState)
Definition: FSM.h:233
unsigned int m_CurrState
Definition: FSM.h:150
std::set< unsigned int > StateSet
Definition: FSM.h:42
unsigned int m_CurrState
Definition: FSM.h:288
void * GetParamRef()
Definition: FSM.h:65
std::vector< CallbackFunction > CallbackList
Definition: FSM.h:45
const EventMap & GetEvents() const
Definition: FSM.h:248
CallbackList m_Conditions
Definition: FSM.h:154
unsigned int GetNextState() const
Definition: FSM.h:116
std::vector< CFsmTransition * > TransitionList
Definition: FSM.h:44
EventMap m_Events
Definition: FSM.h:291
const CallbackList & GetActions() const
Definition: FSM.h:126
TransitionList m_Transitions
Definition: FSM.h:292
StateSet m_States
Definition: FSM.h:290
unsigned int m_FirstState
Definition: FSM.h:287
constexpr unsigned int FSM_INVALID_STATE
Definition: FSM.h:27
unsigned int m_NextState
Definition: FSM.h:151
CallbackList m_Actions
Definition: FSM.h:153
unsigned int GetNextState() const
Definition: FSM.h:238
An association of event, condition, action and next state.
Definition: FSM.h:81
std::map< unsigned int, CFsmEvent * > EventMap
Definition: FSM.h:43