- fixed initialization of model frames

Replaced loop arrays initialization and obvious comments with something more readable, I hope

https://forum.zdoom.org/viewtopic.php?t=72523
This commit is contained in:
alexey.lysiuk 2021-06-10 11:54:26 +03:00
parent adad028b33
commit e0f07d7088

View file

@ -413,25 +413,18 @@ static void ParseModelDefLump(int Lump)
{
smf.modelsAmount = MIN_MODELS;
}
//Allocate TArrays
smf.modelIDs.Alloc(smf.modelsAmount);
smf.skinIDs.Alloc(smf.modelsAmount);
smf.surfaceskinIDs.Alloc(smf.modelsAmount * MD3_MAX_SURFACES);
smf.modelframes.Alloc(smf.modelsAmount);
//Make sure all modelIDs are -1 by default
for (auto& modelID : smf.modelIDs)
const auto initArray = [](auto& array, const unsigned count, const auto value)
{
modelID = -1;
}
//Make sure no TArray elements of type FTextureID are null. These elements will have a textureid (FTextureID.texnum) of 0.
for (auto& skinID : smf.skinIDs)
{
skinID = FTextureID(FNullTextureID());
}
for (auto& surfaceskinID : smf.surfaceskinIDs)
{
surfaceskinID = FTextureID(FNullTextureID());
}
array.Alloc(count);
std::fill(array.begin(), array.end(), value);
};
initArray(smf.modelIDs, smf.modelsAmount, -1);
initArray(smf.skinIDs, smf.modelsAmount, FNullTextureID());
initArray(smf.surfaceskinIDs, smf.modelsAmount * MD3_MAX_SURFACES, FNullTextureID());
initArray(smf.modelframes, smf.modelsAmount, 0);
sc.RestorePos(scPos);
sc.MustGetStringName("{");
while (!sc.CheckString("}"))