- enum player_subsystem subsystem;
- union {
- struct player_skate_animator _skate;
- struct player_walk_animator _walk;
- struct player_dead_animator _dead;
- };
+ /* TODO: Compression with server code */
+ char username[ NETWORK_USERNAME_MAX ];
+ char items[k_netmsg_playeritem_max][ADDON_UID_MAX];
+
+ u32 down_bytes;
+ f32 down_kbs;
+ }
+ list[ NETWORK_MAX_PLAYERS ];
+
+ struct interp_buffer {
+ /* collect the most recent 6 frames of animation data */
+ struct interp_frame {
+ int active;
+ f64 timestamp;
+ enum player_subsystem subsystem;
+
+ u8 instance_id;
+ u16 boundary_hash;
+
+ union interp_animdata {
+ struct player_skate_animator _skate;
+ struct player_walk_animator _walk;
+ struct player_dead_animator _dead;
+ }
+ data;
+ }
+ frames[ NETWORK_BUFFERFRAMES ];
+
+ f64 t;