handplants
[carveJwlIkooP6JGAAIwe30JlM.git] / player_replay.c
index 6a59e252ea9dab0d9580f22eb82e404828697e47..c1bf7b4d785e4a0e00326c9a1e91e16c9716ac41 100644 (file)
@@ -4,6 +4,7 @@
 #include "player_replay.h"
 #include "input.h"
 #include "gui.h"
+#include "freecam.h"
 
 static void replay_clear( replay_buffer *replay ){
    replay->head = NULL;
@@ -332,7 +333,7 @@ void skaterift_restore_frame( replay_frame *frame ){
       memcpy( &player_skate.state, src, src_size );
    }
    else if( frame->system == k_player_subsystem_dead ){
-      player__dead_transition();
+      player__dead_transition(0);
       struct replay_rb *arr = src;
 
       for( u32 i=0; i<localplayer.ragdoll.part_count; i ++ ){
@@ -451,41 +452,7 @@ static void skaterift_replay_pre_update(void){
       }
 
       if( skaterift.freecam ){
-         camera *cam = &skaterift.replay_freecam;
-         v3f angles;
-         v3_copy( cam->angles, angles );
-         player_look( angles, 1.0f );
-
-         f32 decay = vg_maxf(0.0f,1.0f-vg.time_frame_delta*10.0f);
-
-         v3f d;
-         v3_sub( angles, cam->angles, d );
-         v3_muladds( skaterift.freecam_w, d, 20.0f, skaterift.freecam_w );
-         v3_muls( skaterift.freecam_w, decay, skaterift.freecam_w );
-         v3_muladds( cam->angles, skaterift.freecam_w, vg.time_frame_delta,
-                     cam->angles );
-         cam->angles[1] = vg_clampf( cam->angles[1], -VG_PIf*0.5f,VG_PIf*0.5f);
-
-         camera_update_transform( cam );
-         v3f lookdir = { 0.0f, 0.0f, -1.0f },
-             sidedir = { 1.0f, 0.0f,  0.0f };
-         
-         m3x3_mulv( cam->transform, lookdir, lookdir );
-         m3x3_mulv( cam->transform, sidedir, sidedir );
-
-         v2f input;
-         joystick_state( k_srjoystick_steer, input );
-         v2_muls( input, vg.time_frame_delta*6.0f*20.0f, input );
-         
-         v3_muladds( skaterift.freecam_v, lookdir, -input[1], 
-                     skaterift.freecam_v );
-         v3_muladds( skaterift.freecam_v, sidedir, input[0], 
-                     skaterift.freecam_v );
-
-         v3_muls( skaterift.freecam_v, decay, skaterift.freecam_v );
-         v3_muladds( cam->pos,
-                     skaterift.freecam_v, vg.time_frame_delta, cam->pos );
+         //freecam_preupdate();
       }
       else {
          if( button_down( k_srbind_replay_resume ) ){
@@ -505,9 +472,13 @@ static void skaterift_replay_update_helpers(void){
 }
 
 static void skaterift_replay_post_render(void){
+   if( world_static.active_instance != k_world_purpose_client )
+      return;
+
    /* capture the current resume frame at the very last point */
    if( button_down( k_srbind_reset ) ){
       if( skaterift.activity == k_skaterift_default ){
+         localplayer.rewinded_since_last_gate = 1;
          skaterift.activity = k_skaterift_replay;
          skaterift_record_frame( &skaterift.replay, 1 );
          if( skaterift.replay.head ){
@@ -537,6 +508,7 @@ static void skaterift_replay_post_render(void){
    }
 }
 
+#if 0
 static void skaterift_get_replay_camera( camera *cam ){
    if( skaterift.freecam ){
       cam->nearz = 0.1f;
@@ -549,6 +521,7 @@ static void skaterift_get_replay_camera( camera *cam ){
       replay_get_camera( &skaterift.replay, &skaterift.cam );
    }
 }
+#endif
 
 static void skaterift_replay_debug_info(void){
    player__debugtext( 2, "replay info" );