diff --git a/apps/openmw/mwgui/charactercreation.cpp b/apps/openmw/mwgui/charactercreation.cpp index 3987264fc6..090025d2d7 100644 --- a/apps/openmw/mwgui/charactercreation.cpp +++ b/apps/openmw/mwgui/charactercreation.cpp @@ -245,7 +245,7 @@ namespace MWGui const ESM::NPC* playerNpc = world->getPlayerPtr().get()->mBase; - const MWWorld::Player player = world->getPlayer(); + const MWWorld::Player& player = world->getPlayer(); const ESM::Class* playerClass = world->getStore().get().find(playerNpc->mClass); diff --git a/apps/openmw/mwworld/manualref.cpp b/apps/openmw/mwworld/manualref.cpp index 814197cd0d..a07ceac083 100644 --- a/apps/openmw/mwworld/manualref.cpp +++ b/apps/openmw/mwworld/manualref.cpp @@ -16,9 +16,7 @@ namespace cellRef.blank(); cellRef.mRefID = name; - MWWorld::LiveCellRef ref(cellRef, base); - - refValue = ref; + refValue = MWWorld::LiveCellRef(cellRef, base); ptrValue = MWWorld::Ptr(&std::any_cast&>(refValue), nullptr); } } diff --git a/apps/openmw/mwworld/worldmodel.hpp b/apps/openmw/mwworld/worldmodel.hpp index 85238dbda8..965d6a21f4 100644 --- a/apps/openmw/mwworld/worldmodel.hpp +++ b/apps/openmw/mwworld/worldmodel.hpp @@ -102,6 +102,8 @@ namespace MWWorld bool readRecord(ESM::ESMReader& reader, uint32_t type, const std::map& contentFileMap); private: + PtrRegistry mPtrRegistry; // defined before mCells because during destruction it should be the last + MWWorld::ESMStore& mStore; ESM::ReadersCache& mReaders; mutable std::unordered_map mCells; @@ -110,7 +112,6 @@ namespace MWWorld ESM::Cell mDraftCell; std::vector> mIdCache; std::size_t mIdCacheIndex = 0; - PtrRegistry mPtrRegistry; CellStore& getOrInsertCellStore(const ESM::Cell& cell);