forked from mirror/openmw-tes3mp
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;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -98,4 +98,14 @@ const MWState::Slot *MWState::Character::updateSlot (const Slot *slot, const ESM
|
|||
mSlots.push_back (newSlot);
|
||||
|
||||
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;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -59,4 +59,14 @@ void MWState::CharacterManager::createCharacter()
|
|||
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;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -97,4 +97,14 @@ void MWState::StateManager::saveGame (const Slot *slot)
|
|||
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