1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-03-29 22:20:33 +00:00

Fix(CS): Initialize landscape when opening an existing cell without VHGT

This commit is contained in:
Dave Corley 2023-12-09 11:49:38 -06:00
parent 2541b74fc6
commit 3e7335ddc7

View File

@ -137,29 +137,29 @@ void CSVRender::Cell::updateLand()
{ {
const ESM::Land& esmLand = land.getRecord(mId).get(); const ESM::Land& esmLand = land.getRecord(mId).get();
if (esmLand.getLandData(ESM::Land::DATA_VHGT)) if (!esmLand.getLandData(ESM::Land::DATA_VHGT))
mTerrainStorage->resetHeights();
if (mTerrain)
{ {
if (mTerrain) mTerrain->unloadCell(mCoordinates.getX(), mCoordinates.getY());
{ mTerrain->clearAssociatedCaches();
mTerrain->unloadCell(mCoordinates.getX(), mCoordinates.getY());
mTerrain->clearAssociatedCaches();
}
else
{
constexpr double expiryDelay = 0;
mTerrain = std::make_unique<Terrain::TerrainGrid>(mCellNode, mCellNode, mData.getResourceSystem().get(),
mTerrainStorage, Mask_Terrain, ESM::Cell::sDefaultWorldspaceId, expiryDelay);
}
mTerrain->loadCell(esmLand.mX, esmLand.mY);
if (!mCellBorder)
mCellBorder = std::make_unique<CellBorder>(mCellNode, mCoordinates);
mCellBorder->buildShape(esmLand);
return;
} }
else
{
constexpr double expiryDelay = 0;
mTerrain = std::make_unique<Terrain::TerrainGrid>(mCellNode, mCellNode, mData.getResourceSystem().get(),
mTerrainStorage, Mask_Terrain, ESM::Cell::sDefaultWorldspaceId, expiryDelay);
}
mTerrain->loadCell(esmLand.mX, esmLand.mY);
if (!mCellBorder)
mCellBorder = std::make_unique<CellBorder>(mCellNode, mCoordinates);
mCellBorder->buildShape(esmLand);
return;
} }
// No land data // No land data