diff options
| author | Jeffery Myers <[email protected]> | 2021-02-16 01:29:00 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-02-16 10:29:00 +0100 |
| commit | 0f5aab3a1ca2ffaae6c6e784d485007d7d6e7182 (patch) | |
| tree | 50a433f7d4cb1e6bc5239d0607012254c7d6949b /src/models.c | |
| parent | b530b584b520af81d5a6517ebe30f086dcf79d60 (diff) | |
| download | raylib-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.c | 7 |
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) { |
