1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-07 12:54:00 +00:00
OpenMW/apps/openmw/mwstate/charactermanager.hpp
2022-09-22 21:35:26 +03:00

51 lines
1.3 KiB
C++

#ifndef GAME_STATE_CHARACTERMANAGER_H
#define GAME_STATE_CHARACTERMANAGER_H
#include <filesystem>
#include <list>
#include "character.hpp"
namespace MWState
{
class CharacterManager
{
std::filesystem::path mPath;
// Uses std::list, so that mCurrent stays valid when characters are deleted
std::list<Character> mCharacters;
Character* mCurrent;
std::string mGame;
private:
CharacterManager(const CharacterManager&);
///< Not implemented
CharacterManager& operator=(const CharacterManager&);
///< Not implemented
std::list<Character>::iterator findCharacter(const MWState::Character* character);
public:
CharacterManager(std::filesystem::path saves, const std::vector<std::string>& contentFiles);
Character* getCurrentCharacter();
///< @note May return null
void deleteSlot(const MWState::Character* character, const MWState::Slot* slot);
Character* createCharacter(const std::string& name);
///< Create new character within saved game management
/// \param name Name for the character (does not need to be unique)
void setCurrentCharacter(const Character* character);
std::list<Character>::const_iterator begin() const;
std::list<Character>::const_iterator end() const;
};
}
#endif