cleanup frame saving
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.c
index 64fb65a2055522ca7f3d2d37b6944c14f10a5d45..20b686b282b3719c5ac0a9771fa4420040f6d878 100644 (file)
@@ -284,13 +284,6 @@ VG_STATIC void vg_pre_update(void){
 
    vg_slewf( &skaterift.time_rate, target, vg.time_frame_delta * 6.0f );
    vg.time_rate = vg_smoothstepf( skaterift.time_rate );
-
-   if( button_down( k_srbind_reset ) ){
-      if( skaterift.activity == k_skaterift_default ){
-         skaterift.activity = k_skaterift_replay;
-         player_record_replay_frame( &localplayer, &skaterift.replay, 1 );
-      }
-   }
    
    player__pre_update( &localplayer );
    global_skateshop_preupdate();
@@ -480,7 +473,7 @@ VG_STATIC void render_main_game(void){
       player__animate_from_replay( &localplayer, &skaterift.replay );
    }
    else
-      player_record_replay_frame( &localplayer, &skaterift.replay, 0 );
+      skaterift_record_frame( &skaterift.replay, 0 );
    player__pre_render( &localplayer );
 
    skaterift_composite_maincamera();
@@ -493,6 +486,14 @@ VG_STATIC void render_main_game(void){
    render_scene_gate_subview();
 
    present_view_with_post_processing();
+
+   /* capture the current resume frame at the very last point */
+   if( button_down( k_srbind_reset ) ){
+      if( skaterift.activity == k_skaterift_default ){
+         skaterift.activity = k_skaterift_replay;
+         skaterift_record_frame( &skaterift.replay, 1 );
+      }
+   }
 }
 
 VG_STATIC void vg_render(void){