From ed1ed73c73058ca2bd98b6849746152d20c12f46 Mon Sep 17 00:00:00 2001 From: Jan Laupetin Date: Sun, 3 May 2026 13:40:31 +0200 Subject: [PATCH] chore: warn about mismatching root bone name between model and xmodel json --- src/ObjLoading/XModel/LoaderXModel.cpp.template | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/ObjLoading/XModel/LoaderXModel.cpp.template b/src/ObjLoading/XModel/LoaderXModel.cpp.template index 3a3e3666..6188cf0a 100644 --- a/src/ObjLoading/XModel/LoaderXModel.cpp.template +++ b/src/ObjLoading/XModel/LoaderXModel.cpp.template @@ -183,6 +183,21 @@ namespace } } + static void CheckSpecifiedRootBoneName(XModelCommon& common, const JsonXModel& jXModel) + { + assert(!common.m_bones.empty()); + + if (!jXModel.rootBoneName) + return; + + if (*jXModel.rootBoneName != common.m_bones[0].name) + { + con::warn( + "Root bone name of model json {} does not match the model's root bone name. The name from the xmodel json is ignored and can be removed!", + common.m_name); + } + } + static void ApplyBasePose(DObjAnimMat& baseMat, const XModelBone& bone) { baseMat.trans.x = bone.globalOffset[0]; @@ -815,6 +830,8 @@ namespace if (common->m_bones.empty()) AutoGenerateArmature(*common, jXModel); + else + CheckSpecifiedRootBoneName(*common, jXModel); if (lodNumber == 0u) {