|
|
@ -2281,6 +2281,7 @@ void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame) |
|
|
|
if (firstMeshWithBones == -1) |
|
|
|
{ |
|
|
|
firstMeshWithBones = i; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -2314,18 +2315,17 @@ void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame) |
|
|
|
model.meshes[firstMeshWithBones].boneMatrices[boneId] = boneMatrix; |
|
|
|
} |
|
|
|
|
|
|
|
// Update remaining meshes with bones (Use Deep copy because shallow copy results in double free with 'UnloadModel()') |
|
|
|
// Update remaining meshes with bones |
|
|
|
// NOTE: Using deep copy because shallow copy results in double free with 'UnloadModel()' |
|
|
|
if (firstMeshWithBones != -1) |
|
|
|
{ |
|
|
|
for (int i = firstMeshWithBones + 1; i < model.meshCount; i++) |
|
|
|
{ |
|
|
|
if (model.meshes[i].boneMatrices) |
|
|
|
{ |
|
|
|
memcpy( |
|
|
|
model.meshes[i].boneMatrices, |
|
|
|
memcpy(model.meshes[i].boneMatrices, |
|
|
|
model.meshes[firstMeshWithBones].boneMatrices, |
|
|
|
model.meshes[i].boneCount * sizeof(model.meshes[i].boneMatrices[0]) |
|
|
|
); |
|
|
|
model.meshes[i].boneCount * sizeof(model.meshes[i].boneMatrices[0])); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -2338,6 +2338,7 @@ void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame) |
|
|
|
void UpdateModelAnimation(Model model, ModelAnimation anim, int frame) |
|
|
|
{ |
|
|
|
UpdateModelAnimationBones(model,anim,frame); |
|
|
|
|
|
|
|
for (int m = 0; m < model.meshCount; m++) |
|
|
|
{ |
|
|
|
Mesh mesh = model.meshes[m]; |
|
|
@ -2346,8 +2347,9 @@ void UpdateModelAnimation(Model model, ModelAnimation anim, int frame) |
|
|
|
int boneId = 0; |
|
|
|
int boneCounter = 0; |
|
|
|
float boneWeight = 0.0; |
|
|
|
bool updated = false; // Flag to check when anim vertex information is updated |
|
|
|
bool updated = false; // Flag to check when anim vertex information is updated |
|
|
|
const int vValues = mesh.vertexCount*3; |
|
|
|
|
|
|
|
for (int vCounter = 0; vCounter < vValues; vCounter += 3) |
|
|
|
{ |
|
|
|
mesh.animVertices[vCounter] = 0; |
|
|
|