fix achievement bug
[carveJwlIkooP6JGAAIwe30JlM.git] / player_replay.c
index 3e799d410a80af47953f877fb417b2ff92c4f254..7abd993d5659cf370b661004acc70cfaefd96b98 100644 (file)
@@ -442,6 +442,7 @@ void skaterift_record_frame( replay_buffer *replay, int force_gamestate )
          replay_frame_data( frame, k_replay_framedata_internal_gamestate );
 
       gs->current_run_version = world_static.current_run_version;
+      gs->drowned = localplayer.drowned;
 
       /* permanent block */
       memcpy( &gs->rb, &localplayer.rb, sizeof(rigidbody) );
@@ -521,13 +522,14 @@ void skaterift_record_frame( replay_buffer *replay, int force_gamestate )
    localplayer.local_sfx_buffer_count = 0;
 }
 
-static
-void skaterift_restore_frame( replay_frame *frame ){
+static void skaterift_restore_frame( replay_frame *frame )
+{
    replay_gamestate *gs = 
       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];
    world_static.current_run_version = gs->current_run_version;
+   localplayer.drowned = gs->drowned;
 
    if(frame->system == k_player_subsystem_walk ){
       memcpy( &player_walk.state, src, src_size );
@@ -1194,4 +1196,8 @@ void skaterift_replay_imgui(void)
       player_replay.editor_mode = 0;
       replay_show_helpers();
    }
+
+   /* TODO: Add Q/E scrub here too.
+    *       Add replay trimming 
+    */
 }