mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-24 20:39:43 +00:00
added function for inspection of saved characters and character slots
This commit is contained in:
parent
fc1501a510
commit
cbbdf390ad
7 changed files with 59 additions and 2 deletions
|
@ -1,6 +1,8 @@
|
|||
#ifndef GAME_MWSTATE_STATEMANAGER_H
|
||||
#define GAME_MWSTATE_STATEMANAGER_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace MWState
|
||||
{
|
||||
struct Slot;
|
||||
|
@ -21,6 +23,8 @@ namespace MWBase
|
|||
State_Running
|
||||
};
|
||||
|
||||
typedef std::vector<MWState::Character>::const_iterator CharacterIterator;
|
||||
|
||||
private:
|
||||
|
||||
StateManager (const StateManager&);
|
||||
|
@ -54,6 +58,10 @@ namespace MWBase
|
|||
/// \note Slot must belong to the current character.
|
||||
|
||||
virtual MWState::Character *getCurrentCharacter() = 0;
|
||||
|
||||
virtual CharacterIterator characterBegin() = 0;
|
||||
|
||||
virtual CharacterIterator characterEnd() = 0;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -99,3 +99,13 @@ const MWState::Slot *MWState::Character::updateSlot (const Slot *slot, const ESM
|
|||
|
||||
return &mSlots.back();
|
||||
}
|
||||
|
||||
MWState::Character::SlotIterator MWState::Character::begin() const
|
||||
{
|
||||
return mSlots.rbegin();
|
||||
}
|
||||
|
||||
MWState::Character::SlotIterator MWState::Character::end() const
|
||||
{
|
||||
return mSlots.rend();
|
||||
}
|
|
@ -18,6 +18,12 @@ namespace MWState
|
|||
|
||||
class Character
|
||||
{
|
||||
public:
|
||||
|
||||
typedef std::vector<Slot>::const_reverse_iterator SlotIterator;
|
||||
|
||||
private:
|
||||
|
||||
boost::filesystem::path mPath;
|
||||
std::vector<Slot> mSlots;
|
||||
int mNext;
|
||||
|
@ -39,6 +45,11 @@ namespace MWState
|
|||
/// \note Slot must belong to this character.
|
||||
///
|
||||
/// \attention The \æ slot pointer will be invalidated by this call.
|
||||
|
||||
SlotIterator begin() const;
|
||||
///< First slot is the most recent. Other slots follow in descending order of save date.
|
||||
|
||||
SlotIterator end() const;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -60,3 +60,13 @@ void MWState::CharacterManager::clearCurrentCharacter()
|
|||
{
|
||||
mCurrent = 0;
|
||||
}
|
||||
|
||||
std::vector<MWState::Character>::const_iterator MWState::CharacterManager::begin() const
|
||||
{
|
||||
return mCharacters.begin();
|
||||
}
|
||||
|
||||
std::vector<MWState::Character>::const_iterator MWState::CharacterManager::end() const
|
||||
{
|
||||
return mCharacters.end();
|
||||
}
|
||||
|
|
|
@ -33,6 +33,10 @@ namespace MWState
|
|||
///< Create new character within saved game management
|
||||
|
||||
void clearCurrentCharacter();
|
||||
|
||||
std::vector<Character>::const_iterator begin() const;
|
||||
|
||||
std::vector<Character>::const_iterator end() const;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -98,3 +98,13 @@ MWState::Character *MWState::StateManager::getCurrentCharacter()
|
|||
{
|
||||
return mCharacterManager.getCurrentCharacter();
|
||||
}
|
||||
|
||||
MWState::StateManager::CharacterIterator MWState::StateManager::characterBegin()
|
||||
{
|
||||
return mCharacterManager.begin();
|
||||
}
|
||||
|
||||
MWState::StateManager::CharacterIterator MWState::StateManager::characterEnd()
|
||||
{
|
||||
return mCharacterManager.end();
|
||||
}
|
||||
|
|
|
@ -38,6 +38,10 @@ namespace MWState
|
|||
/// \note Slot must belong to the current character.
|
||||
|
||||
virtual Character *getCurrentCharacter();
|
||||
|
||||
virtual CharacterIterator characterBegin();
|
||||
|
||||
virtual CharacterIterator characterEnd();
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue