up network version
[carveJwlIkooP6JGAAIwe30JlM.git] / player_replay.c
index a013f7ce4059dc9222adb2145ec2f9c919def399..8e6438b3758b62e0c00f49b92320be0b4d86c330 100644 (file)
@@ -307,6 +307,8 @@ static void skaterift_record_frame( replay_buffer *replay,
       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) );
@@ -392,6 +394,7 @@ void skaterift_restore_frame( replay_frame *frame ){
    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 );
@@ -427,10 +430,10 @@ void skaterift_restore_frame( replay_frame *frame ){
       rb_update_matrices( rb );
    }
 
+   localplayer.subsystem = frame->system;
+
    /* restore the seperated glider data if we have it */
    if( frame->data_table[ k_replay_framedata_glider ][1] ){
-      localplayer.subsystem = frame->system;
-
       struct replay_glider_data *inf = 
          replay_frame_data( frame, k_replay_framedata_glider );