summaryrefslogtreecommitdiffhomepage
path: root/src/models.c
diff options
context:
space:
mode:
authorJeffery Myers <[email protected]>2021-02-16 01:29:00 -0800
committerGitHub <[email protected]>2021-02-16 10:29:00 +0100
commit0f5aab3a1ca2ffaae6c6e784d485007d7d6e7182 (patch)
tree50a433f7d4cb1e6bc5239d0607012254c7d6949b /src/models.c
parentb530b584b520af81d5a6517ebe30f086dcf79d60 (diff)
downloadraylib-0f5aab3a1ca2ffaae6c6e784d485007d7d6e7182.tar.gz
raylib-0f5aab3a1ca2ffaae6c6e784d485007d7d6e7182.zip
check to make sure parent bone is not null before trying to compute its offset from the root (#1594)
Diffstat (limited to 'src/models.c')
-rw-r--r--src/models.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/models.c b/src/models.c
index 68e80acd..f4b79e39 100644
--- a/src/models.c
+++ b/src/models.c
@@ -3733,7 +3733,7 @@ static Model LoadGLTF(const char *fileName)
for (unsigned int j = 0; j < data->nodes_count; j++)
{
strcpy(model.bones[j].name, data->nodes[j].name == 0 ? "ANIMJOINT" : data->nodes[j].name);
- model.bones[j].parent = j != 0 ? data->nodes[j].parent - data->nodes : 0;
+ model.bones[j].parent = (j != 0 && data->nodes[j].parent != NULL) ? data->nodes[j].parent - data->nodes : 0;
}
for (unsigned int i = 0; i < data->nodes_count; i++)
@@ -3771,7 +3771,10 @@ static Model LoadGLTF(const char *fileName)
{
Transform* currentTransform = model.bindPose + i;
BoneInfo* currentBone = model.bones + i;
- Transform* parentTransform = model.bindPose + currentBone->parent;
+ int root = currentBone->parent;
+ if (root >= model.boneCount)
+ root = 0;
+ Transform* parentTransform = model.bindPose + root;
if (currentBone->parent >= 0)
{