v3_copy( (v3f){0.0f,0.0f,0.0f}, cc->fpv_offset );
v3_copy( (v3f){0.0f,1.4f,0.0f}, cc->tpv_offset );
}
+ else if( localplayer.subsystem == k_player_subsystem_glide ){
+ v3_copy( (v3f){-0.15f,1.75f,0.0f}, cc->fpv_viewpoint );
+ v3_copy( (v3f){0.0f,0.0f,0.0f}, cc->fpv_offset );
+ v3_copy( (v3f){0.0f,-1.0f,0.0f}, cc->tpv_offset );
+ v3_add( cc->tpv_offset_extra, cc->tpv_offset, cc->tpv_offset );
+ }
else{
v3_copy( (v3f){-0.15f,1.75f,0.0f}, cc->fpv_viewpoint );
v3_copy( (v3f){0.0f,0.0f,0.0f}, cc->fpv_offset );
/* lerping */
+ if( localplayer.cam_dist_smooth == 0.0f ){
+ localplayer.cam_dist_smooth = localplayer.cam_dist;
+ }
+ else {
+ localplayer.cam_dist_smooth = vg_lerpf(
+ localplayer.cam_dist_smooth,
+ localplayer.cam_dist,
+ vg.time_frame_delta * 8.0f );
+ }
+
localplayer.cam_velocity_influence_smooth = vg_lerpf(
localplayer.cam_velocity_influence_smooth,
localplayer.cam_velocity_influence,
/* now move into world */
v3f tpv_pos, tpv_offset, tpv_origin;
+ /* TODO: whats up with CC and not CC but both sets of variables are doing
+ * the same ideas just saved in different places?
+ */
/* origin */
q_mulv( pq, cc->tpv_offset_smooth, tpv_origin );
v3_add( tpv_origin, cc->tpv_lpf, tpv_origin );
/* offset */
- v3_muls( camera_follow_dir, 1.8f, tpv_offset );
+ v3_muls( camera_follow_dir, localplayer.cam_dist_smooth, tpv_offset );
v3_muladds( tpv_offset, cc->cam_velocity_smooth, -0.025f, tpv_offset );
v3_add( tpv_origin, tpv_offset, tpv_pos );