diff --git a/src/ObjCommon/Game/T6/Json/JsonXModel.h b/src/ObjCommon/Game/T6/Json/JsonXModel.h index 5e725a32..26e0c2f5 100644 --- a/src/ObjCommon/Game/T6/Json/JsonXModel.h +++ b/src/ObjCommon/Game/T6/Json/JsonXModel.h @@ -16,9 +16,10 @@ namespace T6 { public: std::string file; + float distance; }; - NLOHMANN_DEFINE_TYPE_EXTENSION(JsonXModelLod, file); + NLOHMANN_DEFINE_TYPE_EXTENSION(JsonXModelLod, file, distance); class JsonXModel { diff --git a/src/ObjLoading/Game/T6/XModel/JsonXModelLoader.cpp b/src/ObjLoading/Game/T6/XModel/JsonXModelLoader.cpp index a1311d41..464e5d6c 100644 --- a/src/ObjLoading/Game/T6/XModel/JsonXModelLoader.cpp +++ b/src/ObjLoading/Game/T6/XModel/JsonXModelLoader.cpp @@ -464,8 +464,10 @@ namespace return false; } - xmodel.lodInfo[lodNumber].surfIndex = static_cast(m_surfaces.size()); - xmodel.lodInfo[lodNumber].numsurfs = static_cast(common->m_objects.size()); + auto& lodInfo = xmodel.lodInfo[lodNumber]; + lodInfo.dist = jLod.distance; + lodInfo.surfIndex = static_cast(m_surfaces.size()); + lodInfo.numsurfs = static_cast(common->m_objects.size()); return std::ranges::all_of(common->m_objects, [this, &common](const XModelObject& commonObject) diff --git a/src/ObjWriting/Game/T6/XModel/JsonXModelWriter.cpp b/src/ObjWriting/Game/T6/XModel/JsonXModelWriter.cpp index cda24133..05104da2 100644 --- a/src/ObjWriting/Game/T6/XModel/JsonXModelWriter.cpp +++ b/src/ObjWriting/Game/T6/XModel/JsonXModelWriter.cpp @@ -61,7 +61,7 @@ namespace } } - void CreateJsonXModel(JsonXModel& jXModel, const XModel& xmodel) const + static void CreateJsonXModel(JsonXModel& jXModel, const XModel& xmodel) { if (xmodel.collLod >= 0) jXModel.collLod = xmodel.collLod; @@ -70,6 +70,7 @@ namespace { JsonXModelLod lod; lod.file = std::format("model_export/{}_lod{}{}", xmodel.name, lodNumber, GetExtensionForModelByConfig()); + lod.distance = xmodel.lodInfo[lodNumber].dist; jXModel.lods.emplace_back(std::move(lod)); }