+ if( player_replay.freecam ){
+ freecam_preupdate();
+ v3_copy( player_replay.replay_freecam.pos, skaterift.cam.pos );
+ v3_copy( player_replay.replay_freecam.angles, skaterift.cam.angles );
+ skaterift.cam.fov = player_replay.replay_freecam.fov;
+ }
+ else {
+ if( skaterift.activity == k_skaterift_replay ){
+ replay_get_camera( &player_replay.local, &skaterift.cam );
+ }
+ }
+
+ skaterift.cam.nearz = 0.1f;
+ skaterift.cam.farz = 2100.0f;
+
+ if( skaterift.activity == k_skaterift_world_map ){
+ vg_camera_copy( &world_map.cam, &skaterift.cam );
+ skaterift.cam.nearz = 4.0f;
+ skaterift.cam.farz = 3100.0f;
+ }
+
+ if( global_miniworld.transition ){
+ f32 dt = vg.time_frame_delta / 2.0f,
+ s = vg_signf( global_miniworld.transition );
+ global_miniworld.t += s * dt;
+
+ if( (global_miniworld.t > 1.0f) || (global_miniworld.t < 0.0f) ){
+ global_miniworld.t = vg_clampf( global_miniworld.t, 0.0f, 1.0f );
+ global_miniworld.transition = 0;
+ }
+ }
+
+ vg_camera_update_transform( &skaterift.cam );
+ vg_camera_update_view( &skaterift.cam );
+ vg_camera_update_projection( &skaterift.cam );
+ vg_camera_finalize( &skaterift.cam );
+}
+
+static void render_main_game(void){
+ if( skaterift.activity == k_skaterift_replay ){
+ player__animate_from_replay( &player_replay.local );