From dcac39aefd7849df08620ab10269472a711b15bf Mon Sep 17 00:00:00 2001 From: Dave Corley Date: Sat, 19 Jul 2025 09:44:01 -0700 Subject: [PATCH] FIX: never serialize MVRF for refferences from the local plugin --- apps/opencs/model/doc/savingstages.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/opencs/model/doc/savingstages.cpp b/apps/opencs/model/doc/savingstages.cpp index edd4329f7f..074163c31e 100644 --- a/apps/opencs/model/doc/savingstages.cpp +++ b/apps/opencs/model/doc/savingstages.cpp @@ -304,6 +304,8 @@ void CSMDoc::WriteCellCollectionStage::writeReferences( { CSMWorld::CellRef refRecord = ref.get(); + const bool isLocal = refRecord.mRefNum.mContentFile == 0; + // -1 is the current file, saved indices are 1-based refRecord.mRefNum.mContentFile++; @@ -316,7 +318,8 @@ void CSMDoc::WriteCellCollectionStage::writeReferences( } ESM::RefId streamId = ESM::RefId::stringRefId(stream.str()); - if ((refRecord.mOriginalCell.empty() ? refRecord.mCell : refRecord.mOriginalCell) != streamId && !interior) + if (!isLocal && (refRecord.mOriginalCell.empty() ? refRecord.mCell : refRecord.mOriginalCell) != streamId + && !interior) { // An empty mOriginalCell is meant to indicate that it is the same as // the current cell. It is possible that a moved ref is moved again.