static int replay_seek( replay_buffer *replay, f64 t ){
if( !replay->head ) return 0;
- assert( replay->tail );
if( t < replay->tail->time ) t = replay->tail->time;
if( t > replay->head->time ) t = replay->head->time;
replay_gamestate *gs =
replay_frame_data( frame, k_replay_framedata_internal_gamestate );
+ gs->current_run_version = world_static.current_run_version;
+
/* permanent block */
memcpy( &gs->rb, &localplayer.rb, sizeof(rigidbody) );
memcpy( &gs->glider_rb, &player_glide.rb, sizeof(rigidbody) );
replay_frame_data( frame, k_replay_framedata_internal_gamestate );
void *src = replay_frame_data( frame, k_replay_framedata_gamestate );
u16 src_size = frame->data_table[ k_replay_framedata_gamestate ][1];
- assert( src_size );
+ world_static.current_run_version = gs->current_run_version;
if(frame->system == k_player_subsystem_walk ){
memcpy( &player_walk.state, src, src_size );