aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/ai/je_state_machine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/ai/je_state_machine.h')
-rw-r--r--src/libjin/ai/je_state_machine.h55
1 files changed, 27 insertions, 28 deletions
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 <map>
#include <vector>
+#include <functional>
#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<void(void*)> StateChangeCallback;
+
///
///
///
- typedef void(StateUpdateCallback)(void* userdata);
+ typedef std::function<void(void*)> StateUpdateCallback;
///
///
///
- typedef void(StateTranslateCallback)(void* userdata);
+ typedef std::function<void(void*)> StateTranslateCallback;
///
///
///
- typedef void(SingleStateCallback)(const std::string& stateName, void* userdata);
+ typedef std::function<void(const std::string&, void*)> SingleStateCallback;
///
///
///
- typedef void(DoubleStateCallback)(const std::string& stateFrom, const std::string& stateTo, void* userdata);
+ typedef std::function<void(const std::string&, const std::string, void*)> 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<std::string, StateChangeCallback*> mOnEnterState;
+ std::map<std::string, StateChangeCallback> mOnEnterState;
///
///
///
- std::map<std::string, StateUpdateCallback*> mOnUpdateState;
+ std::map<std::string, StateUpdateCallback> mOnUpdateState;
///
///
///
- std::map<std::string, StateChangeCallback*> mOnExitState;
+ std::map<std::string, StateChangeCallback> mOnExitState;
///
/// From first to second.
///
- std::map<std::pair<std::string, std::string>, StateTranslateCallback*> mOnStateTranslate;
+ std::map<std::pair<std::string, std::string>, StateTranslateCallback> mOnStateTranslate;
///
///
///
- SingleStateCallback* mEnterCallback;
+ SingleStateCallback mEnterCallback;
///
///
///
- SingleStateCallback* mUpdateCallback;
+ SingleStateCallback mUpdateCallback;
///
///
///
- SingleStateCallback* mExitCallback;
+ SingleStateCallback mExitCallback;
///
///
///
- DoubleStateCallback* mTraslateCallback;
+ DoubleStateCallback mTraslateCallback;
///
/// Current state.