X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=player_replay.h;h=e97584cceee54949a2f01480af7f132bc65c088c;hb=refs%2Fheads%2Fmaster;hp=db694843be362e74cc1e7fee61166aaa15edb129;hpb=c137bd8a21c36e63f564801ceb800b47f1ec3c7b;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_replay.h b/player_replay.h deleted file mode 100644 index db69484..0000000 --- a/player_replay.h +++ /dev/null @@ -1,125 +0,0 @@ -#pragma once -#include "player_render.h" -#include "vg/vg_rigidbody.h" - -typedef struct replay_buffer replay_buffer; -typedef struct replay_frame replay_frame; -typedef struct replay_keyframe replay_keyframe; - -typedef struct replay_gamestate replay_gamestate; -typedef struct replay_sfx replay_sfx; - -struct replay_buffer { - void *data; - u32 size; /* bytes */ - - replay_frame *head, *tail, *cursor_frame, - *statehead; - f64 cursor; -}; - -enum replay_framedata{ - k_replay_framedata_animator, - k_replay_framedata_gamestate, - k_replay_framedata_internal_gamestate, - k_replay_framedata_sfx, - k_replay_framedata_glider, - k_replay_framedata_rows -}; - -struct replay_cam -{ - v3f pos, angles; - f32 fov; -}; - -struct replay_frame -{ - struct replay_cam cam; - f64 time; - - replay_frame *l, *r; - - enum player_subsystem system; - u16 total_size; - u16 data_table[k_replay_framedata_rows][2]; -}; - -/* player-defined replay frames */ -struct replay_keyframe -{ - struct replay_cam cam; - f64 time; -}; - -struct replay_gamestate -{ - rigidbody rb, glider_rb; /* TODO: these don't need to be saved with their - full matrices */ - v3f angles; - struct player_cam_controller cam_control; - u32 current_run_version; -}; - -/* we save this per-anim-frame. if there glider is existing in any state */ -struct replay_glider_data -{ - bool have_glider, glider_orphan; - f32 t; - v3f co; - v4f q; -}; - -struct replay_sfx { - u32 none; -}; - -struct replay_globals -{ - replay_buffer local; - replay_frame *resume_target; - f64 resume_begin; - f32 resume_transition; - - enum replay_control { - k_replay_control_scrub = 0x00, - k_replay_control_play = 0x01, - k_replay_control_resume= 0x02 - } - replay_control; - f32 track_velocity; - struct gui_helper *helper_resume, *helper_freecam; - - vg_camera replay_freecam; - - bool use_freecam; - v3f freecam_v, freecam_w; - - i32 editor_mode; - - replay_keyframe keyframes[32]; - u32 keyframe_count; - i32 active_keyframe; - - bool drag_wait; -} -extern player_replay; - -int replay_seek( replay_buffer *replay, f64 t ); - -replay_frame *replay_find_recent_stateframe( replay_buffer *replay ); -void replay_get_camera( replay_buffer *replay, vg_camera *cam ); -void replay_get_frame_camera( replay_frame *frame, vg_camera *cam ); -f32 replay_subframe_time( replay_buffer *replay ); -void replay_clear( replay_buffer *replay ); -void * -replay_frame_data( replay_frame *frame, enum replay_framedata type ); - -void skaterift_replay_pre_update(void); -void skaterift_replay_imgui(void); -void skaterift_replay_debug_info(void); -void skaterift_record_frame( replay_buffer *replay, - int force_gamestate ); -void skaterift_replay_post_render(void); -void skaterift_replay_init(void); -void skaterift_get_replay_cam( vg_camera *cam );