mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-02-20 21:09:40 +00:00
handle IDs that don't exist anymore after loading
This commit is contained in:
parent
9788bbcab9
commit
c18c3e51ee
1 changed files with 15 additions and 9 deletions
|
@ -467,18 +467,21 @@ void MWMechanics::NpcStats::writeState (ESM::NpcStats& state) const
|
|||
|
||||
void MWMechanics::NpcStats::readState (const ESM::NpcStats& state)
|
||||
{
|
||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
|
||||
for (std::map<std::string, ESM::NpcStats::Faction>::const_iterator iter (state.mFactions.begin());
|
||||
iter!=state.mFactions.end(); ++iter)
|
||||
{
|
||||
if (iter->second.mExpelled)
|
||||
mExpelled.insert (iter->first);
|
||||
if (store.get<ESM::Faction>().search (iter->first))
|
||||
{
|
||||
if (iter->second.mExpelled)
|
||||
mExpelled.insert (iter->first);
|
||||
|
||||
if (iter->second.mRank)
|
||||
mFactionRank.insert (std::make_pair (iter->first, iter->second.mRank));
|
||||
if (iter->second.mRank)
|
||||
mFactionRank.insert (std::make_pair (iter->first, iter->second.mRank));
|
||||
|
||||
if (iter->second.mReputation)
|
||||
mFactionReputation.insert (std::make_pair (iter->first, iter->second.mReputation));
|
||||
}
|
||||
if (iter->second.mReputation)
|
||||
mFactionReputation.insert (std::make_pair (iter->first, iter->second.mReputation));
|
||||
}
|
||||
|
||||
mDisposition = state.mDisposition;
|
||||
|
||||
|
@ -498,7 +501,10 @@ void MWMechanics::NpcStats::readState (const ESM::NpcStats& state)
|
|||
for (int i=0; i<8; ++i)
|
||||
mSkillIncreases[i] = state.mSkillIncrease[i];
|
||||
|
||||
std::copy (state.mUsedIds.begin(), state.mUsedIds.end(), std::inserter (mUsedIds, mUsedIds.begin()));
|
||||
for (std::vector<std::string>::const_iterator iter (state.mUsedIds.begin());
|
||||
iter!=state.mUsedIds.end(); ++iter)
|
||||
if (store.find (*iter))
|
||||
mUsedIds.insert (*iter);
|
||||
|
||||
mTimeToStartDrowning = state.mTimeToStartDrowning;
|
||||
mLastDrowningHit = state.mLastDrowningHit;
|
||||
|
|
Loading…
Reference in a new issue