mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-24 20:09: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
|
#ifndef GAME_MWSTATE_STATEMANAGER_H
|
||||||
#define GAME_MWSTATE_STATEMANAGER_H
|
#define GAME_MWSTATE_STATEMANAGER_H
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
namespace MWState
|
namespace MWState
|
||||||
{
|
{
|
||||||
struct Slot;
|
struct Slot;
|
||||||
|
@ -21,6 +23,8 @@ namespace MWBase
|
||||||
State_Running
|
State_Running
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef std::vector<MWState::Character>::const_iterator CharacterIterator;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
StateManager (const StateManager&);
|
StateManager (const StateManager&);
|
||||||
|
@ -54,6 +58,10 @@ namespace MWBase
|
||||||
/// \note Slot must belong to the current character.
|
/// \note Slot must belong to the current character.
|
||||||
|
|
||||||
virtual MWState::Character *getCurrentCharacter() = 0;
|
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);
|
mSlots.push_back (newSlot);
|
||||||
|
|
||||||
return &mSlots.back();
|
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
|
class Character
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
typedef std::vector<Slot>::const_reverse_iterator SlotIterator;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
boost::filesystem::path mPath;
|
boost::filesystem::path mPath;
|
||||||
std::vector<Slot> mSlots;
|
std::vector<Slot> mSlots;
|
||||||
int mNext;
|
int mNext;
|
||||||
|
@ -39,6 +45,11 @@ namespace MWState
|
||||||
/// \note Slot must belong to this character.
|
/// \note Slot must belong to this character.
|
||||||
///
|
///
|
||||||
/// \attention The \æ slot pointer will be invalidated by this call.
|
/// \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()
|
void MWState::CharacterManager::clearCurrentCharacter()
|
||||||
{
|
{
|
||||||
mCurrent = 0;
|
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
|
///< Create new character within saved game management
|
||||||
|
|
||||||
void clearCurrentCharacter();
|
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()
|
MWState::Character *MWState::StateManager::getCurrentCharacter()
|
||||||
{
|
{
|
||||||
return mCharacterManager.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.
|
/// \note Slot must belong to the current character.
|
||||||
|
|
||||||
virtual Character *getCurrentCharacter();
|
virtual Character *getCurrentCharacter();
|
||||||
|
|
||||||
|
virtual CharacterIterator characterBegin();
|
||||||
|
|
||||||
|
virtual CharacterIterator characterEnd();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue