X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_remote.h;h=ca96290b241231e7fc1d72c0b235c1675ed429ba;hb=eb28dee29482c7ffe8bc0203d302e3ee6dbfd943;hp=1360e54b304c9221a26a8e85ebf5de453d1d4bd7;hpb=d680579754c876a74bf77ac74a224900ce0b3ff9;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_remote.h b/player_remote.h index 1360e54..ca96290 100644 --- a/player_remote.h +++ b/player_remote.h @@ -8,19 +8,33 @@ struct { struct network_player { int active; u16 board_view_slot, playermodel_view_slot; + enum player_subsystem subsystem; char username[32]; u32 down_bytes; f32 down_kbs; - - enum player_subsystem subsystem; - union { - struct player_skate_animator _skate; - struct player_walk_animator _walk; - struct player_dead_animator _dead; - } animdata; } - list[ 32 ]; + list[32]; + + struct interp_buffer { + /* collect the most recent 6 frames of animation data */ + struct interp_frame { + int active; + f64 timestamp; + enum player_subsystem subsystem; + + union interp_animdata { + struct player_skate_animator _skate; + struct player_walk_animator _walk; + struct player_dead_animator _dead; + } + data; + } + frames[6]; + + f64 t; + } + interp_data[32]; m4x3f *final_mtx; @@ -33,5 +47,6 @@ static netplayers; static void player_remote_rx_200_300( SteamNetworkingMessage_t *msg ); static void remote_player_debug_update(void); static void remote_player_send_playerframe(void); +static void animate_remote_player( u32 index ); #endif /* PLAYER_REMOTE_H */