OpenMW
apps/openmw/mwmechanics/aisequence.hpp
Go to the documentation of this file.
00001 #ifndef GAME_MWMECHANICS_AISEQUENCE_H
00002 #define GAME_MWMECHANICS_AISEQUENCE_H
00003 
00004 #include <list>
00005 
00006 #include <components/esm/loadnpc.hpp>
00007 
00008 namespace MWWorld
00009 {
00010     class Ptr;
00011 }
00012 
00013 namespace MWMechanics
00014 {
00015     class AiPackage;
00016     
00018     class AiSequence
00019     {
00020             std::list<AiPackage *> mPackages;
00021 
00022             bool mDone;
00023 
00024             void copy (const AiSequence& sequence);
00025 
00026         public:
00027         
00028             AiSequence();
00029             
00030             AiSequence (const AiSequence& sequence);
00031             
00032             AiSequence& operator= (const AiSequence& sequence);
00033             
00034             virtual ~AiSequence();
00035 
00036             int getTypeId() const;
00038             
00039             bool isPackageDone() const;
00041             
00042             void execute (const MWWorld::Ptr& actor,float duration);
00044             
00045             void clear();
00047 
00048             void stack (const AiPackage& package);
00050             
00051             void queue (const AiPackage& package);
00054 
00055             void fill (const ESM::AIPackageList& list);
00056     };
00057 }
00058 
00059 #endif