add player guide
[carveJwlIkooP6JGAAIwe30JlM.git] / player_dead.c
index da23487d2546d4b5dcd086a8dc20870f1ff189e0..acb434aba50fae7f72cce65c633bbc287dd7bfa4 100644 (file)
@@ -31,13 +31,17 @@ VG_STATIC void player__dead_post_animate( player_instance *player )
 
    struct ragdoll_part *part = &player->ragdoll.parts[ av->id_hip-1 ];
 
-   v3_lerp( d->co_lpf, part->rb.co, vg.frame_delta*4.0f, d->co_lpf );
-   v3_lerp( d->v_lpf,  part->rb.v,  vg.frame_delta*4.0f, d->v_lpf );
-   v3_lerp( d->w_lpf,  part->rb.w,  vg.frame_delta*4.0f, d->w_lpf );
+   v3f ext_co;
+   v4f ext_q;
+   rb_extrapolate( &part->obj.rb, ext_co, ext_q );
+
+   v3_lerp( d->co_lpf, ext_co, vg.time_frame_delta*4.0f, d->co_lpf );
+   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_copy( d->v_lpf, player->rb.v );
-   v3_copy( d->w_lpf, player->rb.w );
+   v3_zero( player->rb.v );
+   v3_zero( player->rb.w );
 }
 
 VG_STATIC void player__dead_im_gui      ( player_instance *player )
@@ -54,9 +58,9 @@ VG_STATIC void player__dead_transition  ( player_instance *player )
    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->rb.co, d->co_lpf );
-   v3_copy( part->rb.v,  d->v_lpf );
-   v3_copy( part->rb.w,  d->w_lpf );
+   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 );
 }
 
 #endif /* PLAYER_DEAD_C */