Skip to content

Commit 3bdf2cf

Browse files
committed
Чтобы ошибки по костям были более понятные
1 parent 236a01b commit 3bdf2cf

File tree

5 files changed

+14
-8
lines changed

5 files changed

+14
-8
lines changed

ogsr_engine/Layers/xrRender/SkeletonAnimated.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ class ECORE_API CKinematicsAnimated : public CKinematics, public IKinematicsAnim
136136
void LL_SetChannelFactor(u16 channel, float factor);
137137
CBlendInstance& LL_GetBlendInstance(u16 bone_id)
138138
{
139-
VERIFY(bone_id < LL_BoneCount());
139+
ASSERT_FMT(bone_id < LL_BoneCount(), "!![%s] visual_name: [%s], invalid bone_id: [%u]", __FUNCTION__, dbg_name.c_str(), bone_id);
140140
return blend_instances[bone_id];
141141
}
142142

ogsr_engine/Layers/xrRender/SkeletonCustom.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,8 @@ void CKinematics::Release()
472472

473473
void CKinematics::LL_SetBoneVisible(u16 bone_id, BOOL val, BOOL bRecursive)
474474
{
475-
R_ASSERT(bone_id < LL_BoneCount());
475+
ASSERT_FMT(bone_id < LL_BoneCount(), "!![%s] visual_name: [%s], invalid bone_id: [%u]", __FUNCTION__, dbg_name.c_str(), bone_id);
476+
476477
visimask.set(bone_id, !!val);
477478
if (!visimask.is(bone_id))
478479
{

ogsr_engine/Layers/xrRender/SkeletonCustom.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,22 +191,22 @@ class CKinematics : public FHierrarhyVisual, public IKinematics
191191

192192
CBoneData& _BCL LL_GetData(u16 bone_id)
193193
{
194-
VERIFY(bone_id < LL_BoneCount());
194+
ASSERT_FMT(bone_id < LL_BoneCount(), "!![%s] visual_name: [%s], invalid bone_id: [%u]", __FUNCTION__, dbg_name.c_str(), bone_id);
195195
VERIFY(bones);
196196
CBoneData& bd = *((*bones)[bone_id]);
197197
return bd;
198198
}
199199

200200
virtual const IBoneData& _BCL GetBoneData(u16 bone_id) const
201201
{
202-
VERIFY(bone_id < LL_BoneCount());
202+
ASSERT_FMT(bone_id < LL_BoneCount(), "!![%s] visual_name: [%s], invalid bone_id: [%u]", __FUNCTION__, dbg_name.c_str(), bone_id);
203203
VERIFY(bones);
204204
CBoneData& bd = *((*bones)[bone_id]);
205205
return bd;
206206
}
207207
CBoneData* _BCL LL_GetBoneData(u16 bone_id)
208208
{
209-
VERIFY(bone_id < LL_BoneCount());
209+
ASSERT_FMT(bone_id < LL_BoneCount(), "!![%s] visual_name: [%s], invalid bone_id: [%u]", __FUNCTION__, dbg_name.c_str(), bone_id);
210210
VERIFY(bones);
211211
u32 sz = sizeof(vecBones);
212212
u32 sz1 = sizeof(((*bones)[bone_id])->children);
@@ -222,7 +222,7 @@ class CKinematics : public FHierrarhyVisual, public IKinematics
222222
ICF Fmatrix& LL_GetTransform_R(u16 bone_id) { return LL_GetBoneInstance(bone_id).mRenderTransform; } // rendering only
223223
Fobb& LL_GetBox(u16 bone_id)
224224
{
225-
VERIFY(bone_id < LL_BoneCount());
225+
ASSERT_FMT(bone_id < LL_BoneCount(), "!![%s] visual_name: [%s], invalid bone_id: [%u]", __FUNCTION__, dbg_name.c_str(), bone_id);
226226
return (*bones)[bone_id]->obb;
227227
}
228228
const Fbox& _BCL GetBox() const { return vis.box; }

ogsr_engine/Layers/xrRender/SkeletonRigid.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,8 @@ void CKinematics::CLBone(const CBoneData* bd, CBoneInstance& bi, const Fmatrix*
185185

186186
void CKinematics::Bone_GetAnimPos(Fmatrix& pos, u16 id, u8 mask_channel, bool ignore_callbacks)
187187
{
188-
R_ASSERT(id < LL_BoneCount());
188+
ASSERT_FMT(id < LL_BoneCount(), "!![%s] visual_name: [%s], invalid bone_id: [%u]", __FUNCTION__, dbg_name.c_str(), id);
189+
189190
CBoneInstance bi = LL_GetBoneInstance(id);
190191
Fvector last_c = bi.mTransform.c;
191192
BoneChain_Calculate(&LL_GetData(id), bi, mask_channel, ignore_callbacks);

ogsr_engine/xrGame/attachment_owner.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,11 @@ void CAttachmentOwner::attach(CInventoryItem* inventory_item)
9595
VERIFY(game_object && game_object->Visual());
9696
if (m_attached_objects.empty())
9797
game_object->add_visual_callback(AttachmentCallback);
98-
attachable_item->set_bone_id(smart_cast<IKinematics*>(game_object->Visual())->LL_BoneID(attachable_item->bone_name()));
98+
const u16 bone_id = smart_cast<IKinematics*>(game_object->Visual())->LL_BoneID(attachable_item->bone_name());
99+
ASSERT_FMT(bone_id != BI_NONE, "!![%s] attach_bone_name [%s] in section [%s] not found in game object [%s] with visual [%s]", __FUNCTION__,
100+
attachable_item->bone_name().c_str(), smart_cast<CGameObject*>(inventory_item)->cNameSect().c_str(), game_object->cNameSect().c_str(),
101+
game_object->Visual()->getDebugName().c_str());
102+
attachable_item->set_bone_id(bone_id);
99103
m_attached_objects.push_back(smart_cast<CAttachableItem*>(inventory_item));
100104

101105
inventory_item->object().setVisible(true);

0 commit comments

Comments
 (0)