From 2301080c63dee1947ffe04bbb447077087da8dde Mon Sep 17 00:00:00 2001 From: scrawl Date: Sun, 6 Dec 2015 18:04:48 +0100 Subject: [PATCH] Load CellStore when an object is moved there --- apps/openmw/mwworld/cellstore.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/apps/openmw/mwworld/cellstore.cpp b/apps/openmw/mwworld/cellstore.cpp index c435b0478..10315b126 100644 --- a/apps/openmw/mwworld/cellstore.cpp +++ b/apps/openmw/mwworld/cellstore.cpp @@ -184,6 +184,9 @@ namespace MWWorld void CellStore::moveFrom(const Ptr &object, CellStore *from) { + if (mState != State_Loaded) + load(); + mHasState = true; MovedRefTracker::iterator found = mMovedToAnotherCell.find(object.getBase()); if (found != mMovedToAnotherCell.end()) @@ -196,14 +199,7 @@ namespace MWWorld { mMovedHere.insert(std::make_pair(object.getBase(), from)); } - - if (mState == State_Loaded) - updateMergedRefs(); - else if (mState == State_Preloaded) - { - mIds.push_back(object.getCellRef().getRefId()); - std::sort(mIds.begin(), mIds.end()); - } + updateMergedRefs(); } MWWorld::Ptr CellStore::moveTo(const Ptr &object, CellStore *cellToMoveTo)