From 6bb692df3008c810688bd5be9d824f25455d1a7f Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 8 Nov 2018 20:10:22 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9=E7=8A=B6=E6=80=81=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/ai/je_state_machine.h | 55 ++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 28 deletions(-) (limited to 'src/libjin/ai/je_state_machine.h') diff --git a/src/libjin/ai/je_state_machine.h b/src/libjin/ai/je_state_machine.h index f53137e..2921ecd 100644 --- a/src/libjin/ai/je_state_machine.h +++ b/src/libjin/ai/je_state_machine.h @@ -6,6 +6,7 @@ #include #include +#include #include "../common/je_temporary.h" #include "../common/je_types.h" @@ -28,12 +29,12 @@ namespace JinEngine /// enum ParameterExpression { - INT_BIGGER = 0x02, - INT_SMALLER = 0x04, + INT_GREATER = 0x02, + INT_LESS = 0x04, INT_EQUAL = 0x08, - FLOAT_BIGGER = 0x10, - FLOAT_SMALLER = 0x20, + FLOAT_GREATER = 0x10, + FLOAT_LESS = 0x20, FLOAT_EQUAL = 0x40, BOOL_IS = 0x80, @@ -150,27 +151,27 @@ namespace JinEngine /// /// /// - typedef void(StateChangeCallback)(void* userdata); - + typedef std::function StateChangeCallback; + /// /// /// - typedef void(StateUpdateCallback)(void* userdata); + typedef std::function StateUpdateCallback; /// /// /// - typedef void(StateTranslateCallback)(void* userdata); + typedef std::function StateTranslateCallback; /// /// /// - typedef void(SingleStateCallback)(const std::string& stateName, void* userdata); + typedef std::function SingleStateCallback; /// /// /// - typedef void(DoubleStateCallback)(const std::string& stateFrom, const std::string& stateTo, void* userdata); + typedef std::function DoubleStateCallback; /// /// State machine constructor. @@ -255,42 +256,42 @@ namespace JinEngine /// /// /// - void addEnterListener(const std::string& state, StateChangeCallback* callback); + void addEnterListener(const std::string& state, const StateChangeCallback& callback); /// /// Call state update function. /// - void addUpdateListener(const std::string& state, StateUpdateCallback* callback); + void addUpdateListener(const std::string& state, const StateUpdateCallback& callback); /// /// /// - void addExitListener(const std::string& state, StateChangeCallback* callback); + void addExitListener(const std::string& state, const StateChangeCallback& callback); /// /// /// - void addTranslateListener(const std::string& from, const std::string& to, StateChangeCallback* callback); + void addTranslateListener(const std::string& from, const std::string& to, const StateChangeCallback& callback); /// /// /// - void setEnterListener(SingleStateCallback* callback); + void setEnterListener(const SingleStateCallback& callback); /// /// /// - void setUpdateListener(SingleStateCallback* callback); + void setUpdateListener(const SingleStateCallback& callback); /// /// /// - void setExitListener(SingleStateCallback* callback); + void setExitListener(const SingleStateCallback& callback); /// /// /// - void setTranslateListener(DoubleStateCallback* callback); + void setTranslateListener(const DoubleStateCallback& callback); private: @@ -327,8 +328,6 @@ namespace JinEngine /// bool processCondition(const Condition& condition); - typedef void(Processor)(void*); - /// /// /// @@ -352,42 +351,42 @@ namespace JinEngine /// /// /// - std::map mOnEnterState; + std::map mOnEnterState; /// /// /// - std::map mOnUpdateState; + std::map mOnUpdateState; /// /// /// - std::map mOnExitState; + std::map mOnExitState; /// /// From first to second. /// - std::map, StateTranslateCallback*> mOnStateTranslate; + std::map, StateTranslateCallback> mOnStateTranslate; /// /// /// - SingleStateCallback* mEnterCallback; + SingleStateCallback mEnterCallback; /// /// /// - SingleStateCallback* mUpdateCallback; + SingleStateCallback mUpdateCallback; /// /// /// - SingleStateCallback* mExitCallback; + SingleStateCallback mExitCallback; /// /// /// - DoubleStateCallback* mTraslateCallback; + DoubleStateCallback mTraslateCallback; /// /// Current state. -- cgit v1.1-26-g67d0