struct network_player {
int active;
u16 board_view_slot, playermodel_view_slot;
- player_pose pose;
+ enum player_subsystem subsystem;
char username[32];
+ u32 down_bytes;
+ f32 down_kbs;
+ }
+ list[32];
- enum player_subsystem subsystem;
- union {
- struct player_skate_animator _skate;
- struct player_walk_animator _walk;
- struct player_dead_animator _dead;
- };
+ 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;
}
- list[ 32 ];
+ interp_data[32];
+
+ m4x3f *final_mtx;
+
+ u32 up_bytes;
+ f32 up_kbs, down_kbs;
+ f64 last_data_measurement;
}
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 */