- if( vg_getkey( SDLK_0 ) ){
- target += vg.time_frame_delta * speed;
- skaterift.replay_control = k_replay_control_scrub;
- replay_seek( &skaterift.replay, target );
+
+ gui_helper_clear();
+}
+
+static void skaterift_replay_update_helpers(void);
+
+static void skaterift_replay_pre_update(void){
+ if( skaterift.activity != k_skaterift_replay ) return;
+
+ if( skaterift.replay_control == k_replay_control_resume ){
+ if( skaterift.replay.cursor_frame == skaterift.resume_target ||
+ skaterift.replay.cursor_frame == NULL ){
+ skaterift_restore_frame( skaterift.resume_target );
+ }
+ else {
+ vg_slewf( &skaterift.resume_transition, 1.0f,
+ vg.time_frame_delta * (1.0f/1.0f) );
+
+ if( skaterift.resume_transition >= 1.0f )
+ skaterift_restore_frame( skaterift.resume_target );
+ else {
+ f64 target = vg_lerp( skaterift.resume_begin,
+ skaterift.resume_target->time,
+ vg_smoothstepf( skaterift.resume_transition ) );
+ if( replay_seek( &skaterift.replay, target ) )
+ skaterift.track_velocity = 1.0f;
+ else
+ skaterift.track_velocity = 0.0f;
+ }
+ }