Home | nevrax.com |
|
fsm_seq_script.hGo to the documentation of this file.00001 00008 /* Copyright, 2000 Nevrax Ltd. 00009 * 00010 * This file is part of NEVRAX NEL. 00011 * NEVRAX NEL is free software; you can redistribute it and/or modify 00012 * it under the terms of the GNU General Public License as published by 00013 * the Free Software Foundation; either version 2, or (at your option) 00014 * any later version. 00015 00016 * NEVRAX NEL is distributed in the hope that it will be useful, but 00017 * WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 * General Public License for more details. 00020 00021 * You should have received a copy of the GNU General Public License 00022 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00023 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00024 * MA 02111-1307, USA. 00025 */ 00026 00027 #ifndef NL_FSMSEQ_SCRIPT_H_ 00028 #define NL_FSMSEQ_SCRIPT_H_ 00029 00030 #include "nel/ai/agent/agent.h" 00031 #include "nel/ai/agent/agent_script.h" 00032 #include "nel/ai/agent/agent_manager.h" 00033 #include "nel/ai/logic/bool_cond.h" 00034 #include "nel/ai/script/type_def.h" 00035 #include "nel/ai/script/interpret_fsm.h" 00036 #include "nel/ai/logic/fsm_script.h" 00037 #include "nel/ai/script/codage.h" 00038 00039 namespace NLAIAGENT 00040 { 00041 class CSeqFsmScript : public CFsmScript 00042 { 00043 private: 00044 // std::vector<NLAIAGENT::IObjectIA *> _VarValues; // Values of the vars for the instanciated operator 00045 // NLAILOGIC::CFactBase *_FactBase; // The father's factbase 00046 00047 sint32 _IdActiveChild; 00048 IBasicAgent *_ActiveChild; 00049 00050 public: 00051 // Builds and actor with its father 00052 CSeqFsmScript(IAgentManager *, bool activated = false); 00053 // copy constructor 00054 CSeqFsmScript(const CSeqFsmScript &); 00055 CSeqFsmScript(IAgentManager *, IBasicAgent *, std::list<IObjectIA *> &, NLAISCRIPT::CFsmClass *); 00056 virtual ~CSeqFsmScript(); 00057 00059 // virtual float priority() const; 00060 00061 // virtual int getBaseMethodCount() const; 00062 00064 virtual const NLAIC::IBasicType *clone() const; 00065 virtual const NLAIC::IBasicType *newInstance() const; 00066 virtual void getDebugString(std::string &) const; 00067 virtual bool isEqual(const IBasicObjectIA &a) const; 00068 // virtual void processMessages(); 00069 // virtual const CProcessResult &run(); 00070 virtual void runChildren(); 00071 00072 // virtual IObjectIA *run(const IMessageBase &msg); 00073 00074 00075 // virtual CProcessResult sendMessage(IObjectIA *); 00076 virtual const NLAIC::CIdentType &getType() const; 00077 00078 00079 static const NLAIC::CIdentType IdSeqFsmScript; 00080 00081 virtual void save(NLMISC::IStream &os); 00082 virtual void load(NLMISC::IStream &is); 00083 00084 virtual IObjectIA::CProcessResult runMethodBase(int heritance, int index,IObjectIA *); 00085 virtual IObjectIA::CProcessResult runMethodBase(int index,IObjectIA *); 00086 00087 00088 00089 virtual tQueue isMember(const NLAIAGENT::IVarName *, const NLAIAGENT::IVarName *, const IObjectIA &) const; 00090 // virtual sint32 getMethodIndexSize() const; 00091 00092 void getFatherComponent(IVarName &); 00093 00094 // virtual void setParent(const IWordNumRef *parent); 00095 00096 virtual void activate(sint32); 00097 // virtual void unactivate(sint32); 00098 00099 00102 virtual void onSuccess(); 00103 virtual void onFailure(); 00104 00107 virtual void onSuccess( IObjectIA *); 00108 virtual void onFailure( IObjectIA *); 00109 00111 /* virtual IObjectIA::CProcessResult runMethodBase(int heritance, int index,IObjectIA *); 00112 virtual IObjectIA::CProcessResult runMethodBase(int index,IObjectIA *); 00113 virtual tQueue isMember(const NLAIAGENT::IVarName *, const NLAIAGENT::IVarName *, const IObjectIA &) const; 00114 virtual sint32 getMethodIndexSize() const; 00115 */ 00116 }; 00117 00118 } 00119 #endif |