#ifndef ALTTP_FILE_HPP #define ALTTP_FILE_HPP #include "Athena/Global.hpp" #include namespace Athena { class ALTTPQuest; /*! \class ALTTPFile * \brief A Link to the Past data container class class * * Contains all relevant data for an A Link to the Past * SRM file. */ class ALTTPFile { public: /*! \brief Quest Iterator * * An Iterator typedef for iterating through the Quest lists */ typedef std::vector::iterator QuestIter; /*! \brief Default constructor * * */ ALTTPFile(); /*! \brief Constructor * * \param questList The primary quest list * \param backupList The backup quest list */ ALTTPFile(std::vector questList, std::vector backupList); /*! \brief Sets a quest at the given index * * \param id Index to the given quest * \param val The new quest to assign to the given index * \throw InvalidOperationException on index out of range */ void setQuest(atUint32 id, ALTTPQuest* val); /*! \brief Returns the primary quest list * * \return The primary quest list */ std::vector questList() const; /*! \brief Returns a quest at the given index * * Returns a quest at the given index * * \return ALTTPQuest* * \throw InvalidOperationException on index out of range */ ALTTPQuest* quest(atUint32 id) const; /*! \brief Returns the number of primary quests * * \return The number of quests */ atUint32 questCount() const; private: std::vector m_quests; std::vector m_backup; }; } // zelda #endif // ALTTP_FILE_HPP