/*! * @file campaign_data.h * definition of the campaign data tank */ #ifndef _CAMPAIGN_DATA_H #define _CAMPAIGN_DATA_H #include "data_tank.h" #include class StoryEntity; //! A class that contains the data of the Campaign object class CampaignData : public DataTank { ObjectListDeclaration(CampaignData); public: CampaignData(const TiXmlElement* root); virtual ~CampaignData(); virtual void loadParams(const TiXmlElement* root); void addStoryEntity(StoryEntity* se); StoryEntity* getFirstLevel(); StoryEntity* getNextLevel(); StoryEntity* getLevel(int storyID); /** @param storyEntity the current entity to be set */ inline void setCurrentEntity(StoryEntity* storyEntity) { this->currentEntity = storyEntity; } /** @return the current StoryEntity played*/ inline StoryEntity* getCurrentEntity() { return this->currentEntity; } private: void loadDataDyn(const TiXmlElement* root); private: StoryEntity* currentEntity; //!< reference to the currently used StoryEntity std::list storyEntities; //!< list of story entities }; #endif /* _CAMPAIGN_DATA_H */