X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=player_remote.c;h=69f148fb8cfa2e51d2756138a6f4184532933ff1;hb=71aba6c4108d99f39379f54b04bb71a6d2dc09b5;hp=606337987948e4aafb5a8ef25f2bdb7172e4ffa7;hpb=b1f5771eda7a9788b86604a4368eb83babdf486d;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_remote.c b/player_remote.c index 6063379..69f148f 100644 --- a/player_remote.c +++ b/player_remote.c @@ -27,6 +27,11 @@ static void player_remote_rx_200_300( SteamNetworkingMessage_t *msg ){ /* TODO: interpret the uids */ player->board_view_slot = 0; player->playermodel_view_slot = 0; + + vg_strncpy( playerjoin->username, player->username, + sizeof(player->username), k_strncpy_always_add_null ); + + vg_info( "#%u joined with name: %s\n", player->username ); } else { vg_error( "inetmsg_playerjoin: player index out of range\n" ); @@ -40,6 +45,7 @@ static void player_remote_rx_200_300( SteamNetworkingMessage_t *msg ){ struct network_player *player = &netplayers.list[ playerleave->index ]; player_remote_unwatch( player ); player->active = 0; + vg_info( "player leave (%d)\n", playerleave->index ); } else { vg_error( "inetmsg_playerleave: player index out of range\n" ); @@ -75,7 +81,12 @@ static void remote_player_network_imgui(void){ struct { enum ESteamNetworkingConnectionState state; const char *str; } states[] = { { k_ESteamNetworkingConnectionState_None, "None" }, - { k_ESteamNetworkingConnectionState_Connecting, "Connecting" }, + { k_ESteamNetworkingConnectionState_Connecting, + (const char *[]){"Connecting -", + "Connecting /", + "Connecting |", + "Connecting \\", + }[(u32)(vg.time_real/0.25) & 0x3 ] }, { k_ESteamNetworkingConnectionState_FindingRoute, "Finding Route" }, { k_ESteamNetworkingConnectionState_Connected, "Connected" }, { k_ESteamNetworkingConnectionState_ClosedByPeer, "Closed by peer" }, @@ -94,19 +105,24 @@ static void remote_player_network_imgui(void){ snprintf( buf, 512, "Network: %s", netstatus ); ui_info( panel, buf ); ui_info( panel, "---------------------" ); - ui_info( panel, "#-1: localplayer" ); - for( u32 i=0; iactive ){ - const char *sysname = "invalid"; + if( network_client.state == k_ESteamNetworkingConnectionState_Connected ){ + ui_info( panel, "#-1: localplayer" ); + for( u32 i=0; iactive ){ + const char *sysname = "invalid"; - if( (player->subsystem >= 0) && - (player->subsystem < k_player_subsystem_max) ){ - sysname = player_subsystems[ player->subsystem ]->name; + if( (player->subsystem >= 0) && + (player->subsystem < k_player_subsystem_max) ){ + sysname = player_subsystems[ player->subsystem ]->name; + } + snprintf( buf, 512, "#%u: %s [%s]", i, player->username, sysname ); + ui_info( panel, buf ); } - snprintf( buf, 512, "#%u: %s [%s]", i, player->username, sysname ); - ui_info( panel, buf ); } } + else { + ui_info( panel, "offline" ); + } }