mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-05-08 03:28:15 +03:00
Move WNAM out of LandData to avoid redundant (de)allocations on startup
This commit is contained in:
parent
e00b420f68
commit
ddd6605608
5 changed files with 23 additions and 30 deletions
|
@ -76,6 +76,9 @@ namespace ESM
|
|||
|
||||
mContext = esm.getContext();
|
||||
|
||||
mDataLoaded = 0;
|
||||
mLandData = NULL;
|
||||
|
||||
// Skip the land data here. Load it when the cell is loaded.
|
||||
while (esm.hasMoreSubs())
|
||||
{
|
||||
|
@ -91,7 +94,7 @@ namespace ESM
|
|||
mDataTypes |= DATA_VHGT;
|
||||
break;
|
||||
case ESM::FourCC<'W','N','A','M'>::value:
|
||||
esm.skipHSub();
|
||||
esm.getHExact(mWnam, sizeof(mWnam));
|
||||
mDataTypes |= DATA_WNAM;
|
||||
break;
|
||||
case ESM::FourCC<'V','C','L','R'>::value:
|
||||
|
@ -107,9 +110,6 @@ namespace ESM
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
mDataLoaded = 0;
|
||||
mLandData = NULL;
|
||||
}
|
||||
|
||||
void Land::save(ESMWriter &esm, bool isDeleted) const
|
||||
|
@ -159,9 +159,14 @@ namespace ESM
|
|||
}
|
||||
esm.writeHNT("VHGT", offsets, sizeof(VHGT));
|
||||
}
|
||||
if (mDataTypes & Land::DATA_WNAM) {
|
||||
esm.writeHNT("WNAM", mLandData->mWnam, 81);
|
||||
}
|
||||
}
|
||||
|
||||
if (mDataTypes & Land::DATA_WNAM) {
|
||||
esm.writeHNT("WNAM", mWnam, 81);
|
||||
}
|
||||
|
||||
if (mLandData)
|
||||
{
|
||||
if (mDataTypes & Land::DATA_VCLR) {
|
||||
esm.writeHNT("VCLR", mLandData->mColours, 3*LAND_NUM_VERTS);
|
||||
}
|
||||
|
@ -216,9 +221,9 @@ namespace ESM
|
|||
}
|
||||
}
|
||||
|
||||
if (reader.isNextSub("WNAM")) {
|
||||
condLoad(reader, flags, DATA_WNAM, mLandData->mWnam, 81);
|
||||
}
|
||||
if (reader.isNextSub("WNAM"))
|
||||
reader.skipHSub();
|
||||
|
||||
if (reader.isNextSub("VCLR"))
|
||||
condLoad(reader, flags, DATA_VCLR, mLandData->mColours, 3 * LAND_NUM_VERTS);
|
||||
if (reader.isNextSub("VTEX")) {
|
||||
|
|
|
@ -96,14 +96,14 @@ struct Land
|
|||
// 24-bit RGB color for each vertex
|
||||
unsigned char mColours[3 * LAND_NUM_VERTS];
|
||||
|
||||
// low-LOD heightmap (used for rendering the global map)
|
||||
signed char mWnam[81];
|
||||
|
||||
// ???
|
||||
short mUnk1;
|
||||
uint8_t mUnk2;
|
||||
};
|
||||
|
||||
// low-LOD heightmap (used for rendering the global map)
|
||||
signed char mWnam[81];
|
||||
|
||||
void load(ESMReader &esm, bool &isDeleted);
|
||||
void save(ESMWriter &esm, bool isDeleted = false) const;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue