Index: ps/trunk/source/network/FSM.h =================================================================== --- ps/trunk/source/network/FSM.h +++ ps/trunk/source/network/FSM.h @@ -18,30 +18,31 @@ #ifndef FSM_H #define FSM_H -#include -#include +#include #include +#include +#include -#define FSM_INVALID_STATE (unsigned int)(~0) +constexpr unsigned int FSM_INVALID_STATE{std::numeric_limits::max()}; class CFsmEvent; class CFsmTransition; class CFsm; -typedef bool (*CONDITION)(void* pContext); -typedef bool (*ACTION)(void* pContext, const CFsmEvent* pEvent); +using Condition = bool(void* pContext); +using Action = bool(void* pContext, const CFsmEvent* pEvent); -typedef struct +struct CallbackFunction { void* pFunction; void* pContext; -} CallbackFunction; +}; -typedef std::set StateSet; -typedef std::map EventMap; -typedef std::vector TransitionList; -typedef std::vector CallbackList; +using StateSet = std::set; +using EventMap = std::map; +using TransitionList = std::vector; +using CallbackList = std::vector; /** * Represents a signal in the state machine that a change has occurred. Index: ps/trunk/source/network/FSM.cpp =================================================================== --- ps/trunk/source/network/FSM.cpp +++ ps/trunk/source/network/FSM.cpp @@ -88,8 +88,8 @@ if (it->pFunction) { // Evaluate condition - CONDITION Condition = (CONDITION)it->pFunction; - eval &= Condition(it->pContext); + Condition* condition = reinterpret_cast(it->pFunction); + eval &= condition(it->pContext); } } @@ -106,8 +106,8 @@ if (it->pFunction) { // Run action - ACTION Action = (ACTION)it->pFunction; - result &= Action(it->pContext, m_Event); + Action* action = reinterpret_cast(it->pFunction); + result &= action(it->pContext, m_Event); } }