X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skeleton.h;h=78a0b5604d5fd0facb8b903ece0631d5fcf35a15;hb=a98ce96041b248580c0447bf87d4c6106483cade;hp=dc8342b9637c5078c2a9b6ee09d1f9ea27935ce5;hpb=b4c9550f206c476bb38b0bb2855d35e6b31bee83;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skeleton.h b/skeleton.h index dc8342b..78a0b56 100644 --- a/skeleton.h +++ b/skeleton.h @@ -1,5 +1,5 @@ /* - * Copyright (C) Mount0 Software, Harry Godden - All Rights Reserved + * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved */ #ifndef SKELETON_H @@ -61,6 +61,7 @@ static u32 skeleton_bone_id( struct skeleton *skele, const char *name ) if( !strcmp( skele->bones[i].name, name )) return i; } + return 0; } @@ -415,8 +416,8 @@ static int skeleton_setup( struct skeleton *skele, mdl_header *mdl ) 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 ) @@ -521,9 +522,9 @@ static int skeleton_setup( struct skeleton *skele, mdl_header *mdl ) 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; ianim_count; i++ ) { @@ -532,11 +533,11 @@ static int skeleton_setup( struct skeleton *skele, mdl_header *mdl ) 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 ); @@ -548,8 +549,8 @@ static int skeleton_setup( struct skeleton *skele, mdl_header *mdl ) return 1; error_dealloc: - free( skele->bones ); - free( skele->ik ); + vg_free( skele->bones ); + vg_free( skele->ik ); return 0; }