ESM4: use switch-cases when relevant

This commit is contained in:
Alexei Kotov 2023-08-17 21:39:50 +03:00
parent 42c6b3b993
commit 1a62b2e6b5
9 changed files with 168 additions and 160 deletions

View file

@ -49,27 +49,23 @@ void ESM4::Armor::load(ESM4::Reader& reader)
break;
case ESM4::SUB_DATA:
{
// TES5
if (subHdr.dataSize == 8)
switch (subHdr.dataSize)
{
reader.get(mData.value);
reader.get(mData.weight);
}
// FO3, FNV, FO4
else if (subHdr.dataSize == 12)
{
reader.get(mData.value);
reader.get(mData.health);
reader.get(mData.weight);
}
// TES4
else if (subHdr.dataSize == 14)
{
reader.get(mData);
}
else
{
reader.skipSubRecordData();
case 14: // TES4
reader.get(mData);
break;
case 12: // FO3, FNV, FO4
reader.get(mData.value);
reader.get(mData.health);
reader.get(mData.weight);
break;
case 8: // TES5
reader.get(mData.value);
reader.get(mData.weight);
break;
default:
reader.skipSubRecordData();
break;
}
break;
}