X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_remote.h;h=265409c873933cca4a665002c1bd773a1a44f4bd;hb=fbc68c65e01838feb77f47b30994b45fcc39ebaf;hp=021fcf5ff1db5b6cda5cb4550f20b86a18139651;hpb=7e1fe6c7931ba4492aa10ac5eebc316b74fb5dac;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_remote.h b/player_remote.h index 021fcf5..265409c 100644 --- a/player_remote.h +++ b/player_remote.h @@ -4,25 +4,38 @@ #include "player.h" #include "network.h" #include "network_common.h" +#include "player_effects.h" #define NETWORK_SFX_QUEUE_LENGTH 12 struct { struct network_player { - int active; + int active, isfriend, isblocked; + u64 steamid; u16 board_view_slot, playermodel_view_slot; enum player_subsystem subsystem; /* this is set IF they exist in a world that we have loaded */ world_instance *active_world; int world_match[ k_world_max ]; + u32 location_pstr; /* TODO: valid if active_world set. */ /* TODO: Compression with server code */ char username[ NETWORK_USERNAME_MAX ]; char items[k_netmsg_playeritem_max][ADDON_UID_MAX]; + char chat[ NETWORK_MAX_CHAT ]; + char region[ NETWORK_REGION_MAX ]; + u32 region_flags; + f64 chat_time; + + /* ui */ + u32 medals[3]; + f32 opacity; u32 down_bytes; f32 down_kbs; + + struct player_effects_data effect_data; } list[ NETWORK_MAX_PLAYERS ]; @@ -37,9 +50,12 @@ struct { u16 boundary_hash; union interp_animdata { - struct player_skate_animator _skate; - struct player_walk_animator _walk; - struct player_dead_animator _dead; + /* these aren't accessed directly, just used to take the + * max(sizeof) all systems */ + struct player_skate_animator __skate; + struct player_walk_animator __walk; + struct player_dead_animator __dead; + struct player_basic_info_animator __basic; } data; } @@ -57,6 +73,10 @@ struct { u32 up_bytes; f32 up_kbs, down_kbs; f64 last_data_measurement; + + int chatting; + char chat_buffer[ NETWORK_MAX_CHAT ], chat_message[ NETWORK_MAX_CHAT ]; + f64 chat_time; } static netplayers; @@ -66,5 +86,6 @@ 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); +static void player_remote_update_friendflags( struct network_player *remote ); #endif /* PLAYER_REMOTE_H */