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 );
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;
}
static void network_send_item( enum netmsg_playeritem_type type ){
- if( !network_client.remote )
+ if( !network_connected() )
return;
netmsg_playeritem *item =
}
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();
+
+ 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();
+ if( info->m_ulSteamID == SteamAPI_ISteamUser_GetSteamID(hSteamUser) ){
+ if( info->m_nChangeFlags & k_EPersonaChangeName ){
+ network_send_username();
+ }
+ }
+
+ if( info->m_nChangeFlags & k_EPersonaChangeRelationshipChanged ){
+ for( u32 i=0; i<NETWORK_MAX_PLAYERS; i ++ ){
+ struct network_player *rp = &netplayers.list[i];
+ if( rp->steamid == info->m_ulSteamID ){
+ player_remote_update_friendflags( rp );
}
}
}
}
static void network_connect(void){
+ char ip_buf[128];
+ vg_str str;
+ vg_strnull( &str, ip_buf, sizeof(ip_buf) );
+ vg_strcat( &str, network_client.server_adress );
+ vg_strcat( &str, ":" );
+ vg_strcati32( &str, NETWORK_PORT );
+
+ if( !vg_strgood(&str) ) return;
+
/* Connect to server if not connected */
SteamNetworkingIPAddr remoteAddr;
- SteamAPI_SteamNetworkingIPAddr_ParseString( &remoteAddr,
- network_client.server_adress );
+ SteamAPI_SteamNetworkingIPAddr_ParseString( &remoteAddr, str.buffer );
char buf[256];
SteamAPI_SteamNetworkingIPAddr_ToString( &remoteAddr, buf, 256, 1 );