X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_replay.c;h=9fbbfcc6e7dd07c5ae9b2433071dd8b3154e061a;hb=1fd91b77f23ce1593037e01b9abb62859545b400;hp=c1bf7b4d785e4a0e00326c9a1e91e16c9716ac41;hpb=64d773ba5c208685f5cf265cc3505e3898e03528;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_replay.c b/player_replay.c index c1bf7b4..9fbbfcc 100644 --- a/player_replay.c +++ b/player_replay.c @@ -176,7 +176,7 @@ static f32 replay_subframe_time( replay_buffer *replay ){ replay_frame *next = frame->r; if( next ){ f64 l = next->time - frame->time, - t = (replay->cursor - frame->time) / l; + t = (l <= (1.0/128.0))? 0.0: (replay->cursor - frame->time) / l; return vg_clampf( t, 0.0f, 1.0f ); } else @@ -218,8 +218,8 @@ struct replay_rb{ v4f q; }; -static -void skaterift_record_frame( replay_buffer *replay, int force_gamestate ){ +static void skaterift_record_frame( replay_buffer *replay, + int force_gamestate ){ f64 delta = 9999999.9, statedelta = 9999999.9; @@ -302,8 +302,15 @@ void skaterift_record_frame( replay_buffer *replay, int force_gamestate ){ if( localplayer.gate_waiting ){ m4x3_mulv( localplayer.gate_waiting->transport, frame->cam_pos, frame->cam_pos ); + + v3f v0; + v3_angles_vector( localplayer.cam.angles, v0 ); + m3x3_mulv( localplayer.gate_waiting->transport, v0, v0 ); + v3_angles( v0, frame->cam_angles ); } - v3_copy( localplayer.cam.angles, frame->cam_angles ); + else + v3_copy( localplayer.cam.angles, frame->cam_angles ); + frame->cam_fov = localplayer.cam.fov; /* animator */