board pose
[carveJwlIkooP6JGAAIwe30JlM.git] / player_remote.h
1 #ifndef PLAYER_REMOTE_H
2 #define PLAYER_REMOTE_H
3
4 #include "player.h"
5 #include "network.h"
6 #include "network_common.h"
7
8 struct {
9 struct network_player {
10 int active;
11 u16 board_view_slot, playermodel_view_slot;
12 enum player_subsystem subsystem;
13
14 char username[32];
15 u32 down_bytes;
16 f32 down_kbs;
17 }
18 list[ NETWORK_MAX_PLAYERS ];
19
20 struct interp_buffer {
21 /* collect the most recent 6 frames of animation data */
22 struct interp_frame {
23 int active;
24 f64 timestamp;
25 enum player_subsystem subsystem;
26
27 union interp_animdata {
28 struct player_skate_animator _skate;
29 struct player_walk_animator _walk;
30 struct player_dead_animator _dead;
31 }
32 data;
33 }
34 frames[6];
35
36 f64 t;
37 }
38 interp_data[ NETWORK_MAX_PLAYERS ];
39
40 m4x3f *final_mtx;
41 struct player_board_pose board_poses[ NETWORK_MAX_PLAYERS ];
42
43 u32 up_bytes;
44 f32 up_kbs, down_kbs;
45 f64 last_data_measurement;
46 }
47 static netplayers;
48
49 static void player_remote_rx_200_300( SteamNetworkingMessage_t *msg );
50 static void remote_player_debug_update(void);
51 static void remote_player_send_playerframe(void);
52 static void animate_remote_player( u32 index );
53
54 #endif /* PLAYER_REMOTE_H */