From 1f5b20ef7de8880a3eb9a32a2b7ca1fb3649b0c0 Mon Sep 17 00:00:00 2001 From: cc9cii Date: Tue, 6 Jul 2021 11:43:30 +1000 Subject: [PATCH] test fix for missing refs --- apps/openmw/mwworld/cellstore.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwworld/cellstore.cpp b/apps/openmw/mwworld/cellstore.cpp index 051273f21d..e8d46b1574 100644 --- a/apps/openmw/mwworld/cellstore.cpp +++ b/apps/openmw/mwworld/cellstore.cpp @@ -610,9 +610,17 @@ namespace MWWorld ref.mRefNum.mContentFile = ESM::RefNum::RefNum_NoContentFile; // Get each reference in turn + ESM::MovedCellRef cMRef; + cMRef.mRefNum.mIndex = 0; bool deleted = false; - while(mCell->getNextRef(esm[index], ref, deleted)) + while(mCell->getNextRef(esm[index], ref, deleted, /*ignoreMoves*/true, &cMRef)) { + if (cMRef.mRefNum.mIndex) + { + cMRef.mRefNum.mIndex = 0; + continue; // ignore refs that are moved + } + // Don't load reference if it was moved to a different cell. ESM::MovedCellRefTracker::const_iterator iter = std::find(mCell->mMovedRefs.begin(), mCell->mMovedRefs.end(), ref.mRefNum);