diff --git a/components/nif/extra.cpp b/components/nif/extra.cpp index a9f8f7994c..619d6ec243 100644 --- a/components/nif/extra.cpp +++ b/components/nif/extra.cpp @@ -64,11 +64,10 @@ namespace Nif { Extra::read(nif); - const uint32_t num = nif->get(); if (nif->getBethVersion() <= NIFFile::BethVersion::BETHVER_FO3) - nif->readVectorOfRecords(num, mLegacyMarkers); + nif->readVectorOfRecords(mLegacyMarkers); else - nif->readVectorOfRecords(num, mMarkers); + nif->readVectorOfRecords(mMarkers); } void BSInvMarker::read(NIFStream* nif) @@ -94,9 +93,7 @@ namespace Nif { Extra::read(nif); - mData.resize(nif->get()); - for (BoneLOD& lod : mData) - lod.read(nif); + nif->readVectorOfRecords(mData); } void BSBoneLODExtraData::BoneLOD::read(NIFStream* nif) @@ -109,9 +106,7 @@ namespace Nif { NiFloatExtraData::read(nif); - mBlocks.resize(nif->get()); - for (Block& block : mBlocks) - block.read(nif); + nif->readVectorOfRecords(mBlocks); } void BSDecalPlacementVectorExtraData::Block::read(NIFStream* nif) @@ -143,9 +138,7 @@ namespace Nif { NiExtraData::read(nif); - mPoints.resize(nif->get()); - for (Point& point : mPoints) - point.read(nif); + nif->readVectorOfRecords(mPoints); } void BSConnectPoint::Children::read(NIFStream* nif) @@ -179,9 +172,7 @@ namespace Nif nif->read(mLOD1TriOffset); nif->read(mLOD2TriCount); nif->read(mLOD2TriOffset); - mCombined.resize(nif->get()); - for (BSPackedGeomDataCombined& data : mCombined) - data.read(nif); + nif->readVectorOfRecords(mCombined); mVertexDesc.read(nif); } @@ -194,12 +185,8 @@ namespace Nif nif->read(mNumTriangles); nif->read(mFlags1); nif->read(mFlags2); - mObjects.resize(nif->get()); - for (BSPackedGeomObject& object : mObjects) - object.read(nif); - mObjectData.resize(mObjects.size()); - for (BSPackedSharedGeomData& objectData : mObjectData) - objectData.read(nif); + nif->readVectorOfRecords(mObjects); + nif->readVectorOfRecords(mObjects.size(), mObjectData); } }