Merge branch 'fix_world_model' into 'master'

Fix WorldModel (#7474)

Closes #7474

See merge request OpenMW/openmw!3270
revert-6246b479
psi29a 1 year ago
commit 09e1ff9a4b

@ -32,10 +32,10 @@ namespace MWWorld
CellStore& emplaceCellStore(ESM::RefId id, const T& cell, ESMStore& store, ESM::ReadersCache& readers,
std::unordered_map<ESM::RefId, CellStore>& cells)
{
return cells
.emplace(std::piecewise_construct, std::forward_as_tuple(id),
std::forward_as_tuple(Cell(cell), store, readers))
.first->second;
const auto [it, inserted] = cells.emplace(
std::piecewise_construct, std::forward_as_tuple(id), std::forward_as_tuple(Cell(cell), store, readers));
assert(inserted);
return it->second;
}
const ESM::Cell* createEsmCell(ESM::ExteriorCellLocation location, ESMStore& store)
@ -205,6 +205,7 @@ namespace MWWorld
cellStore = &emplaceCellStore(cell4->mId, *cell4, mStore, mReaders, mCells);
else
return nullptr;
mInteriors.emplace(name, cellStore);
}
else
{
@ -230,7 +231,12 @@ namespace MWWorld
{
auto it = mCells.find(id);
if (it != mCells.end())
return &it->second;
{
CellStore& cellStore = it->second;
if (forceLoad && cellStore.getState() != CellStore::State_Loaded)
cellStore.load();
return &cellStore;
}
if (id == draftCellId)
{

Loading…
Cancel
Save