From 79df80ad0cd84f97b47dffc43960debca248703d Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 4 Nov 2021 16:11:10 +0100 Subject: [PATCH] Add warning when using ragdoll that has joint with missing target --- Source/Engine/Level/Actors/Ragdoll.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Source/Engine/Level/Actors/Ragdoll.cpp b/Source/Engine/Level/Actors/Ragdoll.cpp index c0d61de2a..1e594746c 100644 --- a/Source/Engine/Level/Actors/Ragdoll.cpp +++ b/Source/Engine/Level/Actors/Ragdoll.cpp @@ -5,6 +5,9 @@ #include "Engine/Level/Scene/Scene.h" #include "Engine/Physics/Actors/RigidBody.h" #include "Engine/Serialization/Serialization.h" +#if USE_EDITOR +#include "Engine/Physics/Joints/Joint.h" +#endif Ragdoll::Ragdoll(const SpawnParams& params) : Actor(params) @@ -43,6 +46,17 @@ float Ragdoll::InitBone(RigidBody* rigidBody, int32& nodeIndex, Transform& local // Initialize body rigidBody->SetSolverIterationCounts(PositionSolverIterations, VelocitySolverIterations); rigidBody->SetMaxDepenetrationVelocity(MaxDepenetrationVelocity); + +#if USE_EDITOR + for (auto child : rigidBody->Children) + { + auto joint = Cast(child); + if (joint && joint->Target == nullptr && joint->IsActiveInHierarchy()) + { + LOG(Warning, "Ragdol joint '{0}' has missing target", joint->GetNamePath()); + } + } +#endif } return weight; }