X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_dead.c;h=5f4ab7260a26cfca7648a0074d01014ecbf10648;hb=b440efbe5785d114d08bb3f5ec0e09cad943006d;hp=625ff0e7643cae2dfb8c0d4c5a4cb9dc93cd1789;hpb=217627b6b4eef904ac89b5f7f7f819b3a0970b20;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_dead.c b/player_dead.c index 625ff0e..5f4ab72 100644 --- a/player_dead.c +++ b/player_dead.c @@ -1,14 +1,28 @@ -#ifndef PLAYER_DEAD_C -#define PLAYER_DEAD_C - -#include "player.h" +#include "skaterift.h" +#include "player_dead.h" #include "gui.h" -static void player__dead_update(void){ +struct player_dead player_dead; +struct player_subsystem_interface player_subsystem_dead = { + .update = player__dead_update, + .post_update = player__dead_post_update, + .animate = player__dead_animate, + .pose = player__dead_pose, + .post_animate = player__dead_post_animate, + .im_gui = player__dead_im_gui, + .bind = player__dead_bind, + + .animator_data = &player_dead.animator, + .animator_size = sizeof(player_dead.animator), + .network_animator_exchange = player__dead_animator_exchange, + .name = "Dead" +}; + +void player__dead_update(void){ player_ragdoll_iter( &localplayer.ragdoll ); } -static void player__dead_post_update(void){ +void player__dead_post_update(void){ struct ragdoll_part *part = &localplayer.ragdoll.parts[ localplayer.id_hip-1 ]; struct player_dead *d = &player_dead; @@ -41,7 +55,7 @@ static void player__dead_post_update(void){ } } -static void player__dead_animate(void){ +void player__dead_animate(void){ struct player_dead *d = &player_dead; struct player_dead_animator *animator = &d->animator; struct player_ragdoll *rd = &localplayer.ragdoll; @@ -113,7 +127,8 @@ static void player__dead_animate(void){ } } -static void player__dead_pose( void *_animator, player_pose *pose ){ +void player__dead_pose( void *_animator, player_pose *pose ) +{ struct player_dead_animator *animator = _animator; struct player_ragdoll *rd = &localplayer.ragdoll; struct skeleton *sk = &localplayer.skeleton; @@ -131,14 +146,17 @@ static void player__dead_pose( void *_animator, player_pose *pose ){ } } -static void player__dead_post_animate(void){ +void player__dead_post_animate(void) +{ localplayer.cam_velocity_influence = 1.0f; } -static void player__dead_im_gui(void){ +void player__dead_im_gui(void) +{ } -static void player__dead_transition( enum player_die_type type ){ +void player__dead_transition( enum player_die_type type ) +{ localplayer.subsystem = k_player_subsystem_dead; copy_localplayer_to_ragdoll( &localplayer.ragdoll, type ); @@ -163,7 +181,8 @@ static void player__dead_transition( enum player_die_type type ){ vg_strcat( &str, "spawn" ); } -static void player__dead_animator_exchange( bitpack_ctx *ctx, void *data ){ +void player__dead_animator_exchange( bitpack_ctx *ctx, void *data ) +{ struct player_dead_animator *animator = data; for( u32 i=0; i