/*
- * Copyright (C) Mount0 Software, Harry Godden - All Rights Reserved
+ * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved
*/
#ifndef SKELETON_H
if( !strcmp( skele->bones[i].name, name ))
return i;
}
+
return 0;
}
skele->bone_count = inf->channels;
skele->ik_count = inf->ik_count;
skele->collider_count = inf->collider_count;
- skele->bones = malloc(sizeof(struct skeleton_bone)*skele->bone_count);
- skele->ik = malloc(sizeof(struct skeleton_ik)*skele->ik_count);
+ skele->bones =vg_alloc(sizeof(struct skeleton_bone)*skele->bone_count);
+ skele->ik = vg_alloc(sizeof(struct skeleton_ik)*skele->ik_count);
skeleton_root = i;
}
else if( skele->bone_count )
skele->bones[0].parent = 0xffffffff;
skele->bones[0].collider = 0;
- skele->final_mtx = malloc( sizeof(m4x3f) * skele->bone_count );
+ skele->final_mtx = vg_alloc( sizeof(m4x3f) * skele->bone_count );
skele->anim_count = inf->anim_count;
- skele->anims = malloc( sizeof(struct skeleton_anim) * inf->anim_count);
+ skele->anims = vg_alloc( sizeof(struct skeleton_anim) * inf->anim_count);
for( int i=0; i<inf->anim_count; i++ )
{
skele->anims[i].rate = anim->rate;
skele->anims[i].length = anim->length;
- strncpy( skele->anims[i].name, mdl_pstr(mdl, anim->pstr_name), 32 );
+ strncpy( skele->anims[i].name, mdl_pstr(mdl, anim->pstr_name), 31 );
u32 total_keyframes = (skele->bone_count-1)*anim->length;
size_t block_size = sizeof(mdl_keyframe) * total_keyframes;
- mdl_keyframe *dst = malloc( block_size );
+ mdl_keyframe *dst = vg_alloc( block_size );
skele->anims[i].anim_data = dst;
memcpy( dst, mdl_get_animdata( mdl, anim ), block_size );
return 1;
error_dealloc:
- free( skele->bones );
- free( skele->ik );
+ vg_free( skele->bones );
+ vg_free( skele->ik );
return 0;
}