connection semantics
authorhgn <hgodden00@gmail.com>
Thu, 2 Nov 2023 23:56:37 +0000 (23:56 +0000)
committerhgn <hgodden00@gmail.com>
Thu, 2 Nov 2023 23:56:37 +0000 (23:56 +0000)
maps_src/mp_mtzero/main.mdl
network.c
network.h
world_sfd.c

index 8e98f1a5fe5f736c7ab2091b34ffaeff1f570804..fc5d8649064b1693319d2a6125ffc5ec4b5a85e1 100644 (file)
Binary files a/maps_src/mp_mtzero/main.mdl and b/maps_src/mp_mtzero/main.mdl differ
index da0be1e392e07fc65f7df722041a4c913e2af1a9..de3d545855518b44844f6cf3c7fd9f1cd24a5fe0 100644 (file)
--- 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();
       }
    }
 }
index 8c1d656133d004269e9c60059025fa78f98b6b64..14d171bcf305c3c7e3641e12b087c7c659e0d256 100644 (file)
--- 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 */
index 478f431ee7aa01956d27746184d39d1ef506454c..bf41bf26b172edb46676455be7668d7b3cf23d6e 100644 (file)
@@ -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;