the coolest fucking thing ive ever made
[carveJwlIkooP6JGAAIwe30JlM.git] / player.h
index e4814d3400d1b2066e24f769638b352dafc62ae8..442d03e0ab7a783fd1b71bba44762e9675cb6e20 100644 (file)
--- a/player.h
+++ b/player.h
@@ -374,16 +374,20 @@ static void player_update_post(void)
       {
          player.rewinding = 0;
          player.rewind_length = 1;
+         world.sky_target_rate = 1.0;
       }
       else
       {
+         world.sky_target_rate = -100.0;
          assert( player.rewind_length > 0 );
 
          v2f override_angles;
          v3f override_pos;
 
          float budget         = vg.time_delta,
-               overall_length = player.rewind_length*0.25f;
+               overall_length = player.rewind_length;
+
+         world_routes_rollback_time( player.rewind_time / overall_length );
 
          for( int i=0; (i<10)&&(player.rewind_time>0.0f)&&(budget>0.0f); i ++ )
          {
@@ -396,12 +400,9 @@ static void player_update_post(void)
 
             float dist = vg_maxf( v3_dist( fr->pos, fr1->pos ), 0.001f ),
                   subl = vg_fractf( player.rewind_time ) + 0.001f,
-                  
-#if 0
-                  speed=sqrtf(player.rewind_time*player.rewind_time+11.0f)*3.0f,
-#else
-                  speed = (3.0f-(1.0f/(0.4f+0.4f*player.rewind_time)))*28.0f,
-#endif
+
+                  sramp= 3.0f-(1.0f/(0.4f+0.4f*player.rewind_time)),
+                  speed = sramp*28.0f + 0.5f*player.rewind_time,
                   mod  = speed * (budget / dist),
 
                   advl = vg_minf( mod, subl ),