projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
allow replays to pass through rifts
[carveJwlIkooP6JGAAIwe30JlM.git]
/
player_replay.c
diff --git
a/player_replay.c
b/player_replay.c
index c1bf7b4d785e4a0e00326c9a1e91e16c9716ac41..9fbbfcc6e7dd07c5ae9b2433071dd8b3154e061a 100644
(file)
--- 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,
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
return vg_clampf( t, 0.0f, 1.0f );
}
else
@@
-218,8
+218,8
@@
struct replay_rb{
v4f q;
};
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;
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 );
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 */
frame->cam_fov = localplayer.cam.fov;
/* animator */