diff --git a/apps/esmtool/record.cpp b/apps/esmtool/record.cpp index e4ada7d18..f8bc2af61 100644 --- a/apps/esmtool/record.cpp +++ b/apps/esmtool/record.cpp @@ -513,7 +513,7 @@ void Record::print() else std::cout << " Map Color: " << boost::format("0x%08X") % mData.mMapColor << std::endl; std::cout << " Water Level Int: " << mData.mWaterInt << std::endl; - std::cout << " NAM0: " << mData.mNAM0 << std::endl; + std::cout << " RefId counter: " << mData.mRefIdCounter << std::endl; } diff --git a/components/esm/loadcell.cpp b/components/esm/loadcell.cpp index 83864569f..0a25fce84 100644 --- a/components/esm/loadcell.cpp +++ b/components/esm/loadcell.cpp @@ -58,7 +58,7 @@ void Cell::load(ESMReader &esm, bool saveContext) void Cell::loadCell(ESMReader &esm, bool saveContext) { - mNAM0 = 0; + mRefIdCounter = 0; if (mData.mFlags & Interior) { @@ -92,7 +92,7 @@ void Cell::loadCell(ESMReader &esm, bool saveContext) esm.getHNOT(mMapColor, "NAM5"); } if (esm.isNextSub("NAM0")) { - esm.getHT(mNAM0); + esm.getHT(mRefIdCounter); } if (saveContext) { @@ -150,8 +150,8 @@ void Cell::save(ESMWriter &esm) const esm.writeHNT("NAM5", mMapColor); } - if (mNAM0 != 0) - esm.writeHNT("NAM0", mNAM0); + if (mRefIdCounter != 0) + esm.writeHNT("NAM0", mRefIdCounter); } void Cell::restore(ESMReader &esm, int iCtx) const @@ -220,7 +220,7 @@ bool Cell::getNextMVRF(ESMReader &esm, MovedCellRef &mref) mWater = 0; mWaterInt = false; mMapColor = 0; - mNAM0 = 0; + mRefIdCounter = 0; mData.mFlags = 0; mData.mX = 0; diff --git a/components/esm/loadcell.hpp b/components/esm/loadcell.hpp index fb4b6b28a..5f889a55b 100644 --- a/components/esm/loadcell.hpp +++ b/components/esm/loadcell.hpp @@ -94,7 +94,10 @@ struct Cell float mWater; // Water level bool mWaterInt; int mMapColor; - int mNAM0; + // Counter for RefIds. This is only used during content file editing and has no impact on gameplay. + // It prevents overwriting previous refIDs, even if they were deleted. + // as that would collide with refs when a content file is upgraded. + int mRefIdCounter; // References "leased" from another cell (i.e. a different cell // introduced this ref, and it has been moved here by a plugin)