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.h66
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;