#include "player.h"
#include "network.h"
+#include "network_common.h"
+
+#define NETWORK_SFX_QUEUE_LENGTH 12
struct {
struct network_player {
u16 board_view_slot, playermodel_view_slot;
enum player_subsystem subsystem;
- char username[32];
+ /* this is set IF they exist in a world that we have loaded */
+ world_instance *active_world;
+ int hub_match, client_match;
+
+ /* 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[32];
+ list[ NETWORK_MAX_PLAYERS ];
struct interp_buffer {
/* collect the most recent 6 frames of animation data */
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;
}
data;
}
- frames[6];
+ frames[ NETWORK_BUFFERFRAMES ];
f64 t;
}
- interp_data[32];
+ interp_data[ NETWORK_MAX_PLAYERS ];
+
+ struct net_sfx sfx_queue[ NETWORK_SFX_QUEUE_LENGTH ];
m4x3f *final_mtx;
+ struct player_board_pose board_poses[ NETWORK_MAX_PLAYERS ];
u32 up_bytes;
f32 up_kbs, down_kbs;
static void remote_player_debug_update(void);
static void remote_player_send_playerframe(void);
static void animate_remote_player( u32 index );
+static void render_remote_players( world_instance *world, camera *cam );
+static void relink_all_remote_player_worlds(void);
#endif /* PLAYER_REMOTE_H */