X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_dead.c;h=8f7170e281a78105207ec6ff99f766f1f7ae6da7;hb=4fa9aa9a1e09940e91cc30e171e3de0606515ef3;hp=957f38d409894c2533b9a027e14e7c3fa7bf5801;hpb=22f62f001f21d1b91fefd9fc495c122d9ddf205a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_dead.c b/player_dead.c index 957f38d..8f7170e 100644 --- a/player_dead.c +++ b/player_dead.c @@ -8,8 +8,8 @@ static void player__dead_update(void){ } static void player__dead_post_update(void){ - struct player_avatar *av = localplayer.playeravatar; - struct ragdoll_part *part = &localplayer.ragdoll.parts[ av->id_hip-1 ]; + struct ragdoll_part *part = + &localplayer.ragdoll.parts[ localplayer.id_hip-1 ]; struct player_dead *d = &player_dead; v3f ext_co; @@ -29,8 +29,7 @@ static void player__dead_animate(void){ struct player_dead *d = &player_dead; struct player_dead_animator *animator = &d->animator; struct player_ragdoll *rd = &localplayer.ragdoll; - struct player_avatar *av = localplayer.playeravatar; - struct skeleton *sk = &av->sk; + struct skeleton *sk = &localplayer.skeleton; m4x3f transforms[ 32 ]; @@ -101,8 +100,7 @@ static void player__dead_animate(void){ static void player__dead_pose( void *_animator, player_pose *pose ){ struct player_dead_animator *animator = _animator; struct player_ragdoll *rd = &localplayer.ragdoll; - struct player_avatar *av = localplayer.playeravatar; - struct skeleton *sk = &av->sk; + struct skeleton *sk = &localplayer.skeleton; pose->type = k_player_pose_type_fk_2; pose->board.lean = 0.0f; @@ -126,14 +124,22 @@ static void player__dead_im_gui(void){ static void player__dead_transition(void){ localplayer.subsystem = k_player_subsystem_dead; - copy_avatar_pose_to_ragdoll( localplayer.playeravatar, &localplayer.ragdoll, - localplayer.rb.v ); + copy_localplayer_to_ragdoll( &localplayer.ragdoll, localplayer.rb.v ); - struct player_avatar *av = localplayer.playeravatar; - struct ragdoll_part *part = &localplayer.ragdoll.parts[ av->id_hip-1 ]; + struct ragdoll_part *part = + &localplayer.ragdoll.parts[ localplayer.id_hip-1 ]; v3_copy( part->obj.rb.co, player_dead.co_lpf ); v3_copy( part->obj.rb.v, player_dead.v_lpf ); v3_copy( part->obj.rb.w, player_dead.w_lpf ); } +static void player__dead_animator_exchange( bitpack_ctx *ctx, void *data ){ + struct player_dead_animator *animator = data; + + for( u32 i=0; itransforms[i].co ); + bitpack_qquat( ctx, animator->transforms[i].q ); + } +} + #endif /* PLAYER_DEAD_C */