small compression
[carveJwlIkooP6JGAAIwe30JlM.git] / player_dead.c
index 78cce2fb76614b6698cf01ed03bcaf11c63e295e..8c558eeb33f1e77e12f00018f480c98aeaf50c60 100644 (file)
@@ -3,15 +3,14 @@
 
 #include "player.h"
 
-VG_STATIC void player__dead_update      ( player_instance *player )
-{
-   player_ragdoll_iter( &player->ragdoll );
+static void player__dead_update(void){
+   player_ragdoll_iter( &localplayer.ragdoll );
 }
 
-VG_STATIC void player__dead_post_update( player_instance *player ){
-   struct player_dead *d  = &player->_dead;
-   struct player_avatar *av = player->playeravatar;
-   struct ragdoll_part *part = &player->ragdoll.parts[ av->id_hip-1 ];
+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 player_dead *d = &player_dead;
 
    v3f ext_co;
    v4f ext_q;
@@ -21,26 +20,26 @@ VG_STATIC void player__dead_post_update( player_instance *player ){
    v3_lerp( d->v_lpf,  part->obj.rb.v,  vg.time_frame_delta*4.0f, d->v_lpf );
    v3_lerp( d->w_lpf,  part->obj.rb.w,  vg.time_frame_delta*4.0f, d->w_lpf );
    
-   v3_copy( d->co_lpf, player->rb.co );
-   v3_zero( player->rb.v );
-   v3_zero( player->rb.w );
+   v3_copy( d->co_lpf, localplayer.rb.co );
+   v3_zero( localplayer.rb.v );
+   v3_zero( localplayer.rb.w );
 }
 
-VG_STATIC void player__dead_animate( player_instance *player ){
-   struct player_dead *d  = &player->_dead;
+static void player__dead_animate(void){
+   struct player_dead *d = &player_dead;
    struct player_dead_animator *animator = &d->animator;
-   struct player_ragdoll *rd = &player->ragdoll;
-   struct player_avatar *av = player->playeravatar;
+   struct player_ragdoll *rd = &localplayer.ragdoll;
+   struct player_avatar *av = localplayer.playeravatar;
    struct skeleton *sk = &av->sk;
 
    m4x3f transforms[ 32 ];
 
    /* root transform */
-   q_m3x3( player->rb.q, transforms[0] );
-   v3_copy( player->rb.co, transforms[0][3] );
+   q_m3x3( localplayer.rb.q, transforms[0] );
+   v3_copy( localplayer.rb.co, transforms[0][3] );
 
-   v4_copy( player->rb.q, animator->transforms[0].q );
-   v3_copy( player->rb.co, animator->transforms[0].co );
+   v4_copy( localplayer.rb.q, animator->transforms[0].q );
+   v3_copy( localplayer.rb.co, animator->transforms[0].co );
 
    /* colliders with bones transforms */
    for( int i=0; i<rd->part_count; i++ ){
@@ -99,11 +98,10 @@ VG_STATIC void player__dead_animate( player_instance *player ){
    }
 }
 
-VG_STATIC void player__dead_pose( player_instance *player, player_pose *pose ){
-   struct player_dead *d  = &player->_dead;
-   struct player_dead_animator *animator = &d->animator;
-   struct player_ragdoll *rd = &player->ragdoll;
-   struct player_avatar *av = player->playeravatar;
+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;
 
    pose->type = k_player_pose_type_fk_2;
@@ -119,25 +117,32 @@ VG_STATIC void player__dead_pose( player_instance *player, player_pose *pose ){
    }
 }
 
-VG_STATIC void player__dead_post_animate( player_instance *player ){
-   player->cam_velocity_influence = 1.0f;
+static void player__dead_post_animate(void){
+   localplayer.cam_velocity_influence = 1.0f;
+}
+
+static void player__dead_im_gui(void){
 }
 
-VG_STATIC void player__dead_im_gui      ( player_instance *player ){
+static void player__dead_transition(void){
+   localplayer.subsystem = k_player_subsystem_dead;
+   copy_avatar_pose_to_ragdoll( localplayer.playeravatar, &localplayer.ragdoll, 
+                                localplayer.rb.v );
 
+   struct player_avatar *av = localplayer.playeravatar;
+   struct ragdoll_part *part = &localplayer.ragdoll.parts[ av->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 );
 }
 
-VG_STATIC void player__dead_transition  ( player_instance *player ){
-   player->subsystem = k_player_subsystem_dead;
-   copy_avatar_pose_to_ragdoll( player->playeravatar, &player->ragdoll, 
-                                player->rb.v );
-
-   struct player_avatar *av = player->playeravatar;
-   struct ragdoll_part *part = &player->ragdoll.parts[ av->id_hip-1 ];
-   struct player_dead   *d  = &player->_dead;
-   v3_copy( part->obj.rb.co, d->co_lpf );
-   v3_copy( part->obj.rb.v,  d->v_lpf );
-   v3_copy( part->obj.rb.w,  d->w_lpf );
+static void player__dead_animator_exchange( bitpack_ctx *ctx, void *data ){
+   struct player_dead_animator *animator = data;
+
+   for( u32 i=0; i<localplayer.playeravatar->sk.bone_count; i ++ ){
+      bitpack_qv3f( ctx, 24, -1024.0f, 1024.0f, animator->transforms[i].co );
+      bitpack_qquat( ctx, animator->transforms[i].q );
+   }
 }
 
 #endif /* PLAYER_DEAD_C */