Another crash fix for land record without data

celladd
scrawl 10 years ago
parent 8eb1f4e70e
commit f6509fe53e

@ -78,7 +78,7 @@ CSVRender::Cell::Cell (CSMWorld::Data& data, Ogre::SceneManager *sceneManager,
if (landIndex != -1) if (landIndex != -1)
{ {
const ESM::Land* esmLand = land.getRecord(mId).get().mLand.get(); const ESM::Land* esmLand = land.getRecord(mId).get().mLand.get();
if(esmLand) if(esmLand && esmLand->mDataTypes&ESM::Land::DATA_VHGT)
{ {
mTerrain.reset(new Terrain::TerrainGrid(sceneManager, new TerrainStorage(mData), Element_Terrain, true, mTerrain.reset(new Terrain::TerrainGrid(sceneManager, new TerrainStorage(mData), Element_Terrain, true,
Terrain::Align_XY)); Terrain::Align_XY));

@ -383,7 +383,7 @@ namespace ESMTerrain
int cellY = std::floor(worldPos.y / 8192.f); int cellY = std::floor(worldPos.y / 8192.f);
ESM::Land* land = getLand(cellX, cellY); ESM::Land* land = getLand(cellX, cellY);
if (!land) if (!land || !(land->mDataTypes&ESM::Land::DATA_VHGT))
return -2048; return -2048;
// Mostly lifted from Ogre::Terrain::getHeightAtTerrainPosition // Mostly lifted from Ogre::Terrain::getHeightAtTerrainPosition

Loading…
Cancel
Save