From 5ee541c0ff3b689ce9e819c64c32b3d6c3a94753 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 Jul 2022 14:16:24 +0200 Subject: [PATCH] Fix not being able to dump t6 xmodels without surface --- .../Game/T6/AssetDumpers/AssetDumperXModel.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperXModel.cpp b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperXModel.cpp index bcdf353c..8281ac59 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperXModel.cpp +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperXModel.cpp @@ -349,6 +349,9 @@ void AssetDumperXModel::AddXModelVertices(AbstractXModelWriter& writer, const XM const auto* surfs = &model->surfs[model->lodInfo[lod].surfIndex]; const auto surfCount = model->lodInfo[lod].numsurfs; + if (!surfs) + return; + for (auto surfIndex = 0u; surfIndex < surfCount; surfIndex++) { const auto& surface = surfs[surfIndex]; @@ -388,6 +391,9 @@ void AssetDumperXModel::AllocateXModelBoneWeights(const XModel* model, const uns const auto* surfs = &model->surfs[model->lodInfo[lod].surfIndex]; const auto surfCount = model->lodInfo[lod].numsurfs; + if (!surfs) + return; + weightCollection.totalWeightCount = 0u; for (auto surfIndex = 0u; surfIndex < surfCount; surfIndex++) { @@ -415,6 +421,9 @@ void AssetDumperXModel::AddXModelVertexBoneWeights(AbstractXModelWriter& writer, const auto* surfs = &model->surfs[model->lodInfo[lod].surfIndex]; const auto surfCount = model->lodInfo[lod].numsurfs; + if (!surfs) + return; + size_t weightOffset = 0u; for (auto surfIndex = 0u; surfIndex < surfCount; surfIndex++) @@ -581,6 +590,9 @@ void AssetDumperXModel::AddXModelFaces(AbstractXModelWriter& writer, const Disti const auto surfCount = model->lodInfo[lod].numsurfs; const auto baseSurfIndex = model->lodInfo[lod].surfIndex; + if (!surfs) + return; + for (auto surfIndex = 0u; surfIndex < surfCount; surfIndex++) { const auto& surface = surfs[surfIndex];