Navigation Menu

Skip to content

Commit

Permalink
- fixed initialization of model frames
Browse files Browse the repository at this point in the history
Replaced loop arrays initialization and obvious comments with something more readable, I hope

https://forum.zdoom.org/viewtopic.php?t=72523
  • Loading branch information
alexey-lysiuk authored and coelckers committed Jul 25, 2021
1 parent 39ae9eb commit c753695
Showing 1 changed file with 11 additions and 18 deletions.
29 changes: 11 additions & 18 deletions src/r_data/models.cpp
Expand Up @@ -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)
{
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)

const auto initArray = [](auto& array, const unsigned count, const auto value)
{
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("}"))
Expand Down

0 comments on commit c753695

Please sign in to comment.