diff options
Diffstat (limited to 'src/libjin/ai/je_state_machine.h')
-rw-r--r-- | src/libjin/ai/je_state_machine.h | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/src/libjin/ai/je_state_machine.h b/src/libjin/ai/je_state_machine.h index 6cd3f17..c928989 100644 --- a/src/libjin/ai/je_state_machine.h +++ b/src/libjin/ai/je_state_machine.h @@ -68,7 +68,7 @@ namespace JinEngine /// struct Condition { - std::string parameter; + int parameter; ParameterExpression expression; ParameterType type; ParameterValue value; @@ -100,7 +100,7 @@ namespace JinEngine conditions = condition.conditions; } - inline Conditions& andi(const std::string& parameter, ParameterExpression expression, int value) + inline Conditions& andi(int parameter, ParameterExpression expression, int value) { Condition condition; condition.expression = expression; @@ -111,7 +111,7 @@ namespace JinEngine return *this; } - inline Conditions& andf(const std::string& parameter, ParameterExpression expression , float value) + inline Conditions& andf(int parameter, ParameterExpression expression , float value) { Condition condition; condition.expression = expression; @@ -122,7 +122,7 @@ namespace JinEngine return *this; } - inline Conditions& andb(const std::string& parameter, ParameterExpression expression, bool value) + inline Conditions& andb(int parameter, ParameterExpression expression, bool value) { Condition condition; condition.expression = expression; @@ -133,7 +133,7 @@ namespace JinEngine return *this; } - inline Conditions& andt(const std::string& parameter) + inline Conditions& andt(int parameter) { Condition condition; condition.parameter = parameter; @@ -165,12 +165,12 @@ namespace JinEngine /// /// /// - typedef std::function<void(const std::string&, void*)> SingleStateCallback; + typedef std::function<void(int, void*)> SingleStateCallback; /// /// /// - typedef std::function<void(const std::string&, const std::string, void*)> DoubleStateCallback; + typedef std::function<void(int, const int, void*)> DoubleStateCallback; /// /// State machine constructor. @@ -195,82 +195,82 @@ namespace JinEngine /// /// Get current state name. /// - const std::string& getCurrentState(); + int getCurrentState(); /// /// Add a integer parameter. /// - void addParameteri(const std::string& name); + void addParameteri(int name); /// /// /// - void addParameterf(const std::string& name); + void addParameterf(int name); /// /// /// - void addParameterb(const std::string& name); + void addParameterb(int name); /// /// /// - void addParametert(const std::string& name); + void addParametert(int name); /// /// Add a state. /// - void addState(const std::string& name); + void addState(int name); /// /// /// - void addTransition(const std::string& from, const std::string& to, const Conditions& conditions); + void addTransition(int from, int to, const Conditions& conditions); /// /// Set parameter value. /// - void setParameteri(const std::string& name, int value); + void setParameteri(int name, int value); /// /// Set parameter value. /// - void setParameterf(const std::string& name, float value); + void setParameterf(int name, float value); /// /// Set parameter value. /// - void setParameterb(const std::string& name, bool value); + void setParameterb(int name, bool value); /// /// Set parameter value. /// - void setParametert(const std::string& name); + void setParametert(int name); /// /// Force change to state. /// - void forceToState(const std::string& name); + void forceToState(int name); /// /// /// - void addEnterListener(const std::string& state, const StateChangeCallback& callback); + void addEnterListener(int state, const StateChangeCallback& callback); /// /// Call state update function. /// - void addUpdateListener(const std::string& state, const StateUpdateCallback& callback); + void addUpdateListener(int state, const StateUpdateCallback& callback); /// /// /// - void addExitListener(const std::string& state, const StateChangeCallback& callback); + void addExitListener(int state, const StateChangeCallback& callback); /// /// /// - void addTranslateListener(const std::string& from, const std::string& to, const StateChangeCallback& callback); + void addTranslateListener(int from, int to, const StateChangeCallback& callback); /// /// @@ -309,7 +309,7 @@ namespace JinEngine struct Transition { Conditions conditions; ///< Condition to active transition. - std::string state; ///< State to translate to. + int state; ///< State to translate to. }; /// @@ -317,7 +317,7 @@ namespace JinEngine /// struct State { - std::string name; ///< Name of state. + int name; ///< Name of state. std::vector<Transition> transitions; ///< All transitions this state have. }; @@ -343,32 +343,32 @@ namespace JinEngine /// /// /// - void invokeCallback(const std::string& from, const std::string& to); + void invokeCallback(int from, int to); /// /// All state this state machine keeps. /// - std::map<std::string, State> mStates; + std::map<int, State> mStates; /// /// /// - std::map<std::string, StateChangeCallback> mOnEnterState; + std::map<int, StateChangeCallback> mOnEnterState; /// /// /// - std::map<std::string, StateUpdateCallback> mOnUpdateState; + std::map<int, StateUpdateCallback> mOnUpdateState; /// /// /// - std::map<std::string, StateChangeCallback> mOnExitState; + std::map<int, StateChangeCallback> mOnExitState; /// /// From first to second. /// - std::map<std::pair<std::string, std::string>, StateTranslateCallback> mOnStateTranslate; + std::map<std::pair<int, int>, StateTranslateCallback> mOnStateTranslate; /// /// @@ -393,12 +393,12 @@ namespace JinEngine /// /// Current state. /// - std::string mCurrentState; + int mCurrentState; /// /// All parameters. /// - std::map<std::string, Parameter> mParameters; + std::map<int, Parameter> mParameters; Mode mMode; |