X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_replay.c;h=31c4c74ead695a6cf789c060337956d07b543aed;hb=4c3dc94e7221f599491e7d111cac3d51d8d83b17;hp=6fea7d91338c5805fe7dae536877fe6c3ab47845;hpb=9e807cf476f75ff098d940450c0ba39cfb5be7b3;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_replay.c b/player_replay.c index 6fea7d9..31c4c74 100644 --- a/player_replay.c +++ b/player_replay.c @@ -267,21 +267,18 @@ static void skaterift_record_frame( replay_buffer *replay, u16 gamestate_size = 0; if( save_state ){ + /* TODO: have as part of system struct */ gamestate_size = (u32 []){ [k_player_subsystem_walk ] = sizeof(struct player_walk_state), [k_player_subsystem_drive] = 0, [k_player_subsystem_skate] = sizeof(struct player_skate_state), [k_player_subsystem_dead ] = localplayer.ragdoll.part_count * - sizeof(struct replay_rb) + sizeof(struct replay_rb), + [k_player_subsystem_glide] = 0, }[ localplayer.subsystem ]; } - u16 animator_size = (u16 []){ - [k_player_subsystem_walk ] = sizeof(struct player_walk_animator), - [k_player_subsystem_drive] = 0, - [k_player_subsystem_skate] = sizeof(struct player_skate_animator), - [k_player_subsystem_dead ] = sizeof(struct player_dead_animator) - }[ localplayer.subsystem ]; + u16 animator_size = player_subsystems[localplayer.subsystem]->animator_size; replay_frame *frame = replay_newframe( replay, animator_size, gamestate_size, @@ -347,6 +344,9 @@ static void skaterift_record_frame( replay_buffer *replay, else if( localplayer.subsystem == k_player_subsystem_dead ){ memcpy( dst, &player_dead.animator, animator_size ); } + else if( localplayer.subsystem == k_player_subsystem_glide ){ + memcpy( dst, &player_glide.animator, animator_size ); + } /* sound effects */ memcpy( replay_frame_data( frame, k_replay_framedata_sfx ),