v3_zero( anim->root_co );
q_identity( anim->root_q );
- for( int i=0; i<vg_list_size( anim->pose ); i ++ )
- {
+ for( int i=0; i<vg_list_size( anim->pose ); i ++ ){
v3_zero( anim->pose[i].co );
v3_fill( anim->pose[i].s, 1.0f );
q_identity( anim->pose[i].q );
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 )
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 */