OpenMW
apps/openmw/mwworld/localscripts.hpp
Go to the documentation of this file.
00001 #ifndef GAME_MWWORLD_LOCALSCRIPTS_H
00002 #define GAME_MWWORLD_LOCALSCRIPTS_H
00003 
00004 #include <list>
00005 #include <string>
00006 
00007 #include "ptr.hpp"
00008 
00009 namespace MWWorld
00010 {
00011     struct ESMStore;
00012     class CellStore;
00013     class RefData;
00014 
00016     class LocalScripts
00017     {
00018             std::list<std::pair<std::string, Ptr> > mScripts;
00019             std::list<std::pair<std::string, Ptr> >::iterator mIter;
00020             MWWorld::Ptr mIgnore;
00021             const MWWorld::ESMStore& mStore;
00022 
00023         public:
00024 
00025             LocalScripts (const MWWorld::ESMStore& store);
00026 
00027             void setIgnore (const Ptr& ptr);
00030 
00031             void startIteration();
00033 
00034             bool isFinished() const;
00036 
00037             std::pair<std::string, Ptr> getNext();
00039 
00040             void add (const std::string& scriptName, const Ptr& ptr);
00042 
00043             void addCell (CellStore *cell);
00045 
00046             void clear();
00048 
00049             void clearCell (CellStore *cell);
00051             
00052             void remove (RefData *ref);
00053 
00054             void remove (const Ptr& ptr);
00056     };
00057 }
00058 
00059 #endif