00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef NL_GOAL_PATH_H
00027 #define NL_GOAL_PATH_H
00028
00029 #include "nel/ai/agent/actor_script.h"
00030 #include "nel/ai/logic/goal_stack.h"
00031 #include "nel/ai/agent/agent_proxy_mailer.h"
00032
00033
00034
00035 namespace NLAILOGIC
00036 {
00037
00038 class CGoalPath : public NLAIAGENT::CActorScript
00039 {
00040 private:
00041 std::vector<CGoal *> _Goals;
00042 std::vector<int> _OnSucces;
00043 std::vector<int> _OnFailure;
00044 std::vector<bool> _JmpNext;
00045 int _CurrentState;
00046 NLAILOGIC::CGoalStack *_GoalStack;
00047 NLAIAGENT::CProxyAgentMail *_Father;
00048
00049
00050 public:
00051 static const NLAIC::CIdentType IdGoalPath;
00052
00053 public:
00054 CGoalPath(NLAIAGENT::IAgentManager *);
00055 CGoalPath(NLAIAGENT::IAgentManager *, NLAIAGENT::IBasicAgent *, std::list<NLAIAGENT::IObjectIA *> &, NLAISCRIPT::CAgentClass *);
00056
00057 void setGoalStack(NLAILOGIC::CGoalStack * );
00058 void addGoal(CGoal *, bool action = true, int on_succes = 0 , int on_failure = 0);
00059
00060 void setFather( NLAIAGENT::CProxyAgentMail *f)
00061 {
00062 _Father = f;
00063 }
00064
00065 virtual void onActivate();
00066 virtual void onUnActivate();
00067
00068
00072 virtual void success();
00073
00074 virtual void failure();
00075
00076
00078
00079
00080
00081
00082 virtual int getBaseMethodCount() const;
00083 sint32 getMethodIndexSize() const;
00084 virtual NLAIAGENT::tQueue getPrivateMember(const NLAIAGENT::IVarName *,const NLAIAGENT::IVarName *,const NLAIAGENT::IObjectIA &) const;
00085 virtual NLAIAGENT::IObjectIA::CProcessResult runMethodBase(int heritance, int index, NLAIAGENT::IObjectIA *);
00086 virtual NLAIAGENT::IObjectIA::CProcessResult runMethodBase(int index, NLAIAGENT::IObjectIA *);
00087
00088
00089 virtual const NLAIC::IBasicType *clone() const;
00090 virtual const NLAIC::IBasicType *newInstance() const;
00091 virtual const NLAIC::CIdentType &getType() const;
00092 };
00093
00094 }
00095
00096 #endif // NL_GOAL_PATH