#ifndef GAME_STATE_QUICKSAVEMANAGER_H #define GAME_STATE_QUICKSAVEMANAGER_H #include #include "character.hpp" namespace MWState { class QuickSaveManager { std::string mSaveName; unsigned int mMaxSaves; unsigned int mSlotsVisited; const Slot* mOldestSlotVisited; private: bool shouldCreateNewSlot() const; bool isOldestSave(const Slot* compare) const; public: QuickSaveManager(std::string& saveName, unsigned int maxSaves); ///< A utility class to manage multiple quicksave slots /// /// \param saveName The name of the save ("QuickSave", "AutoSave", etc) /// \param maxSaves The maximum number of save slots to create before recycling old ones void visitSave(const Slot* saveSlot); ///< Visits the given \a slot \a const Slot* getNextQuickSaveSlot(); ///< Get the slot that the next quicksave should use. /// ///\return Either the oldest quicksave slot visited, or nullptr if a new slot can be made }; } #endif