mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-06 00:55:50 +00:00
Merge branch 'fix_world_model' into 'master'
Fix WorldModel (#7474) Closes #7474 See merge request OpenMW/openmw!3270
This commit is contained in:
commit
09e1ff9a4b
@ -32,10 +32,10 @@ namespace MWWorld
|
|||||||
CellStore& emplaceCellStore(ESM::RefId id, const T& cell, ESMStore& store, ESM::ReadersCache& readers,
|
CellStore& emplaceCellStore(ESM::RefId id, const T& cell, ESMStore& store, ESM::ReadersCache& readers,
|
||||||
std::unordered_map<ESM::RefId, CellStore>& cells)
|
std::unordered_map<ESM::RefId, CellStore>& cells)
|
||||||
{
|
{
|
||||||
return cells
|
const auto [it, inserted] = cells.emplace(
|
||||||
.emplace(std::piecewise_construct, std::forward_as_tuple(id),
|
std::piecewise_construct, std::forward_as_tuple(id), std::forward_as_tuple(Cell(cell), store, readers));
|
||||||
std::forward_as_tuple(Cell(cell), store, readers))
|
assert(inserted);
|
||||||
.first->second;
|
return it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ESM::Cell* createEsmCell(ESM::ExteriorCellLocation location, ESMStore& store)
|
const ESM::Cell* createEsmCell(ESM::ExteriorCellLocation location, ESMStore& store)
|
||||||
@ -205,6 +205,7 @@ namespace MWWorld
|
|||||||
cellStore = &emplaceCellStore(cell4->mId, *cell4, mStore, mReaders, mCells);
|
cellStore = &emplaceCellStore(cell4->mId, *cell4, mStore, mReaders, mCells);
|
||||||
else
|
else
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
mInteriors.emplace(name, cellStore);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -230,7 +231,12 @@ namespace MWWorld
|
|||||||
{
|
{
|
||||||
auto it = mCells.find(id);
|
auto it = mCells.find(id);
|
||||||
if (it != mCells.end())
|
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)
|
if (id == draftCellId)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user