From: hgn Date: Thu, 2 Nov 2023 23:56:37 +0000 (+0000) Subject: connection semantics X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=0cccb35b0b081ca047577461f199463ec2060a3b;hp=7122b79f53f4501751d884c0bf2e838ab501c4a3;p=carveJwlIkooP6JGAAIwe30JlM.git connection semantics --- diff --git a/maps_src/mp_mtzero/main.mdl b/maps_src/mp_mtzero/main.mdl index 8e98f1a..fc5d864 100644 Binary files a/maps_src/mp_mtzero/main.mdl and b/maps_src/mp_mtzero/main.mdl differ diff --git a/network.c b/network.c index da0be1e..de3d545 100644 --- a/network.c +++ b/network.c @@ -137,7 +137,7 @@ static void network_scoreboard_callback( netmsg_request *res, vg_msg *body, static void network_request_scoreboard( const char *mod_uid, const char *route_uid, u32 week, u64 userdata ){ - if( !network_client.remote ) + if( !network_connected() ) return; netmsg_request *req = alloca( sizeof(netmsg_request) + 512 ); @@ -161,7 +161,7 @@ static void network_publish_callback( netmsg_request *res, vg_msg *body, static void network_publish_laptime( const char *mod_uid, const char *route_uid, f64 lap_time ){ - if( !network_client.remote ) + if( !network_connected() ) return; i32 time_centiseconds = lap_time * 100.0; @@ -210,7 +210,7 @@ static void network_request_rx_300_400( SteamNetworkingMessage_t *msg ){ } static void network_send_item( enum netmsg_playeritem_type type ){ - if( !network_client.remote ) + if( !network_connected() ) return; netmsg_playeritem *item = @@ -326,18 +326,18 @@ static void on_server_connect_status( CallbackMsg_t *msg ){ } static void on_persona_state_change( CallbackMsg_t *msg ){ - if( network_client.remote ){ - PersonaStateChange_t *info = (void *)msg->m_pubParam; + if( !network_connected() ) + return; - ISteamUser *hSteamUser = SteamAPI_SteamUser(); - - vg_info( "User: %llu, change: %u\n", info->m_ulSteamID, - info->m_nChangeFlags ); + PersonaStateChange_t *info = (void *)msg->m_pubParam; + ISteamUser *hSteamUser = SteamAPI_SteamUser(); - if( info->m_ulSteamID == SteamAPI_ISteamUser_GetSteamID(hSteamUser) ){ - if( info->m_nChangeFlags & k_EPersonaChangeName ){ - network_send_username(); - } + vg_info( "User: %llu, change: %u\n", info->m_ulSteamID, + info->m_nChangeFlags ); + + if( info->m_ulSteamID == SteamAPI_ISteamUser_GetSteamID(hSteamUser) ){ + if( info->m_nChangeFlags & k_EPersonaChangeName ){ + network_send_username(); } } } diff --git a/network.h b/network.h index 8c1d656..14d171b 100644 --- a/network.h +++ b/network.h @@ -77,4 +77,8 @@ static void network_request_scoreboard( const char *mod_uid, static void network_publish_laptime( const char *mod_uid, const char *route_uid, f64 lap_time ); +static int network_connected(void){ + return network_client.state == k_ESteamNetworkingConnectionState_Connected; +} + #endif /* NETWORK_H */ diff --git a/world_sfd.c b/world_sfd.c index 478f431..bf41bf2 100644 --- a/world_sfd.c +++ b/world_sfd.c @@ -70,7 +70,7 @@ static void world_sfd_compile_scores( struct leaderboard_cache *board ){ return; } - if( !network_client.remote ){ + if( !network_connected() ){ sfd_encode( 4, "Offline" ); return; } @@ -150,7 +150,7 @@ static void world_sfd_update( world_instance *world, v3f pos ){ struct leaderboard_cache *board = &world->leaderboard_cache[ closest ]; /* request new board if cache expires */ - if( network_client.remote ){ + if( network_connected() ){ f64 delta = vg.time_real - board->cache_time; if( (delta > 45.0) || (board->cache_time == 0.0) ){ board->cache_time = vg.time_real;