+++ /dev/null
-#include "skaterift.h"
-#include "player_replay.h"
-#include "input.h"
-
-void freecam_preupdate(void)
-{
- vg_camera *cam = &player_replay.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( player_replay.freecam_w, d, 20.0f, player_replay.freecam_w );
- v3_muls( player_replay.freecam_w, decay, player_replay.freecam_w );
- v3_muladds( cam->angles, player_replay.freecam_w, vg.time_frame_delta,
- cam->angles );
- cam->angles[1] = vg_clampf( cam->angles[1], -VG_PIf*0.5f,VG_PIf*0.5f);
-
- vg_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( player_replay.freecam_v, lookdir, -input[1],
- player_replay.freecam_v );
- v3_muladds( player_replay.freecam_v, sidedir, input[0],
- player_replay.freecam_v );
-
- v3_muls( player_replay.freecam_v, decay, player_replay.freecam_v );
- v3_muladds( cam->pos,
- player_replay.freecam_v, vg.time_frame_delta, cam->pos );
-}
-
-int freecam_cmd( int argc, const char *argv[] )
-{
- if( argc ){
- player_replay.freecam = atoi(argv[0]);
-
- if( player_replay.freecam ){
- vg_camera_copy( &skaterift.cam, &player_replay.replay_freecam );
- }
- }
- return 0;
-}