X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_ragdoll.h;h=6193bf73e4f8bd4ca59fed263d1c6654fa05d670;hb=47941822dae18a018c985847b052e70214a3ccc6;hp=28776c3d683e487a4410541235315208e168f5b9;hpb=4f96bd0040e35ecb21d353ee2b895129682d22c1;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_ragdoll.h b/player_ragdoll.h index 28776c3..6193bf7 100644 --- a/player_ragdoll.h +++ b/player_ragdoll.h @@ -3,15 +3,16 @@ #include "player.h" -static float k_ragdoll_floatyiness = 20.0f, +VG_STATIC float k_ragdoll_floatyiness = 20.0f, k_ragdoll_floatydrag = 1.0f; /* * Setup ragdoll colliders */ -static void player_init_ragdoll( mdl_header *src ) +VG_STATIC void player_init_ragdoll(void) { struct player_model *mdl = &player.mdl; + mdl_context *src = &mdl->meta; if( !mdl->sk.collider_count ) { @@ -19,7 +20,6 @@ static void player_init_ragdoll( mdl_header *src ) return; } - mdl->ragdoll = vg_alloc(sizeof(struct ragdoll_part)*mdl->sk.collider_count); mdl->ragdoll_count = 0; for( u32 i=0; isk.bone_count; i ++ ) @@ -28,6 +28,9 @@ static void player_init_ragdoll( mdl_header *src ) if( bone->collider ) { + if( mdl->ragdoll_count > vg_list_size(player.mdl.ragdoll) ) + vg_fatal_exit_loop( "Playermodel has too many colliders" ); + struct ragdoll_part *rp = &mdl->ragdoll[ mdl->ragdoll_count ++ ]; rp->bone_id = i; @@ -73,7 +76,7 @@ static void player_init_ragdoll( mdl_header *src ) /* * Make the player model copy the ragdoll */ -static void player_model_copy_ragdoll(void) +VG_STATIC void player_model_copy_ragdoll(void) { struct player_model *mdl = &player.mdl; @@ -92,7 +95,7 @@ static void player_model_copy_ragdoll(void) /* * Make the ragdoll copy the player model */ -static void player_ragdoll_copy_model( v3f v ) +VG_STATIC void player_ragdoll_copy_model( v3f v ) { struct player_model *mdl = &player.mdl; @@ -117,7 +120,7 @@ static void player_ragdoll_copy_model( v3f v ) /* * Draw rigidbody colliders for ragdoll */ -static void player_debug_ragdoll(void) +VG_STATIC void player_debug_ragdoll(void) { struct player_model *mdl = &player.mdl; @@ -128,7 +131,7 @@ static void player_debug_ragdoll(void) /* * Ragdoll physics step */ -static void player_ragdoll_iter(void) +VG_STATIC void player_ragdoll_iter(void) { struct player_model *mdl = &player.mdl; rb_solver_reset();