-/*
- * Applies gate transport to a player_interface
- */
-PLAYER_API
-void player__pass_gate( player_instance *player, teleport_gate *gate )
-{
- player->gate_waiting = gate;
-
- gate_rotate_angles( gate, player->angles, player->angles );
- m4x3_mulv( gate->transport, player->tpv_lpf, player->tpv_lpf );
- m3x3_mulv( gate->transport, player->cam_velocity_smooth,
- player->cam_velocity_smooth );
-}
-
-VG_STATIC void player__pre_render( player_instance *player )
-{
- if( _player_animate[ player->subsystem ] )
- {
- player_animation res;
- _player_animate[ player->subsystem ]( player, &res );
-
- /* TODO: eventually, blending code goes here */
-
- m4x3f transform;
- q_m3x3( res.root_q, transform );
- v3_copy( res.root_co, transform[3] );
-
- struct skeleton *sk = &player->playeravatar->sk;
-
- if( player->holdout_time > 0.0f )
- {
- skeleton_lerp_pose( sk, res.pose, player->holdout_pose,
- player->holdout_time, res.pose );
- player->holdout_time -= vg.frame_delta * 4.0f;
- }
-
- skeleton_apply_pose( sk, res.pose, k_anim_apply_defer_ik );
- skeleton_apply_ik_pass( sk );
- skeleton_apply_pose( sk, res.pose, k_anim_apply_deffered_only );
- skeleton_apply_inverses( sk );
- skeleton_apply_transform( sk, transform );
- skeleton_debug( sk );
- }
-
- if( _player_post_animate[ player->subsystem ] )
- _player_post_animate[ player->subsystem ]( player );
-
- struct player_avatar *av = player->playeravatar;
- v3f vp0 = {0.0f,0.1f, 0.6f},
- vp1 = {0.0f,0.1f,-0.6f};