X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=network.c;fp=network.c;h=67fae51e0309ed37d4c6d92324816b6ea7f7506b;hb=bdca621ba09a4611d9fb57f791e96172e376651a;hp=ecd85878a60c0b8cc8931abfa9428bfa898920b9;hpb=d1860effe17d86ef47b7c879668eb97ef8c3ab51;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/network.c b/network.c index ecd8587..67fae51 100644 --- a/network.c +++ b/network.c @@ -278,62 +278,65 @@ static void network_disconnect(void){ } } -static void render_server_status_gui(void){ - render_fb_bind( gpipeline.fb_workshop_preview, 0 ); - - /* HACK */ - vg_ui.cur_vert = 0; - vg_ui.cur_indice = 0; - vg_ui.vert_start = 0; - vg_ui.indice_start = 0; - - ui_rect r = { 0, 0, 128, 48 }; - - char buf[128]; - vg_str str; - vg_strnull( &str, buf, sizeof(buf) ); - - u32 bg = 0xff000000; - +static void network_status_string( vg_str *str, u32 *colour ){ if( steam_ready ){ if( network_client.user_intent == k_server_intent_offline ){ - vg_strcat( &str, "Offline" ); + vg_strcat( str, "Offline" ); } else { ESteamNetworkingConnectionState state = network_client.state; if( state == k_ESteamNetworkingConnectionState_None ) - vg_strcat( &str, "No Connection" ); + vg_strcat( str, "No Connection" ); else if( state == k_ESteamNetworkingConnectionState_Connecting ){ - vg_strcat( &str, "Connecting to:\nskaterift.com" ); + vg_strcat( str, "Connecting to:\nskaterift.com" ); if( network_client.retries ){ - vg_strcat( &str, "\n(" ); - vg_strcati32( &str, network_client.retries ); - vg_strcat( &str, " retries)" ); + vg_strcat( str, "\n(" ); + vg_strcati32( str, network_client.retries ); + vg_strcat( str, " retries)" ); } } else if( state == k_ESteamNetworkingConnectionState_Connected ){ - vg_strcat( &str, "Connected to:\nskaterift.com" ); - bg = 0xff00a020; + vg_strcat( str, "Connected to:\nskaterift.com" ); + *colour = 0xff00a020; } else if( state == k_ESteamNetworkingConnectionState_ClosedByPeer ) - vg_strcat( &str, "Connection Closed" ); + vg_strcat( str, "Connection Closed" ); else if( state == k_ESteamNetworkingConnectionState_FindingRoute ) - vg_strcat( &str, "Finding Route" ); + vg_strcat( str, "Finding Route" ); else if( state == k_ESteamNetworkingConnectionState_ProblemDetectedLocally){ - vg_strcat( &str, "Problem Detected\nLocally" ); - bg = 0xff0000a0; + vg_strcat( str, "Problem Detected\nLocally" ); + *colour = 0xff0000a0; } else - vg_strcat( &str, "???" ); + vg_strcat( str, "???" ); } } else { - vg_strcat( &str, "No Steam Connection" ); - bg = 0xff0000a0; + vg_strcat( str, "Steam Offline" ); + *colour = 0xff0000a0; } +} + +static void render_server_status_gui(void){ + render_fb_bind( gpipeline.fb_workshop_preview, 0 ); + + /* HACK */ + vg_ui.cur_vert = 0; + vg_ui.cur_indice = 0; + vg_ui.vert_start = 0; + vg_ui.indice_start = 0; + + ui_rect r = { 0, 0, 128, 48 }; + + char buf[128]; + vg_str str; + vg_strnull( &str, buf, sizeof(buf) ); + + u32 bg = 0xff000000; + network_status_string( &str, &bg ); ui_fill( r, bg ); ui_text( r, buf, 1, k_ui_align_center, 0 );