1 #ifndef PLAYER_REPLAY_H
2 #define PLAYER_REPLAY_H
6 #include "player_render.h"
8 static i32 k_replay_test
= 0;
10 typedef struct replay_buffer replay_buffer
;
11 typedef struct replay_frame replay_frame
;
12 typedef struct replay_gamestate replay_gamestate
;
13 typedef struct replay_sfx replay_sfx
;
15 struct replay_buffer
{
20 k_replay_control_scrub
,
21 k_replay_control_play
,
25 replay_frame
*head
, *tail
, *cursor_frame
,
31 player_animation anim
;
32 struct board_pose board_pose
;
34 v3f cam_pos
, cam_angles
;
40 u16 gamestate_count
, sfx_count
;
43 struct replay_gamestate
{
44 enum player_subsystem system
;
48 struct player_cam_controller cam_control
;
51 struct player_skate_state skate
;
52 struct player_walk_state walk
;
60 VG_STATIC
void replay_debug_info( player_instance
*player
);
61 VG_STATIC replay_frame
*replay_newframe( replay_buffer
*replay
,
62 u16 gamestate_count
, u16 sfx_count
);
63 VG_STATIC
void replay_imgui( player_instance
*player
);
64 VG_STATIC
void replay_seek( replay_buffer
*replay
, f64 t
);
66 replay_gamestate
*replay_frame_gamestate( replay_frame
*frame
, u16 index
);
67 replay_sfx
*replay_frame_sfx( replay_frame
*frame
, u16 index
);
68 VG_STATIC replay_frame
*replay_find_recent_stateframe( replay_buffer
*replay
);
70 #endif /* PLAYER_REPLAY_H */