X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=network.c;h=3235c697e84ee7359a9d9a3bd4c739fdd082d2a6;hb=eb28dee29482c7ffe8bc0203d302e3ee6dbfd943;hp=4042ef4ef3dd1f5882617141c63f15a555e00b22;hpb=5fba3602f053116a8e3849bc12c03198d6d7461c;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/network.c b/network.c index 4042ef4..3235c69 100644 --- a/network.c +++ b/network.c @@ -123,17 +123,6 @@ static void send_nickname(void){ } #endif -static void network_send_playerframe(void){ - netmsg_playerframe frame; - frame.inetmsg_id = k_inetmsg_playerframe; - v3_copy( localplayer.rb.co, frame.pos_temp ); - - SteamAPI_ISteamNetworkingSockets_SendMessageToConnection( - hSteamNetworkingSockets, network_client.remote, - &frame, sizeof(frame), - k_nSteamNetworkingSend_Unreliable, NULL ); -} - #if 0 static void server_routine_update(void){ send_score_update(); @@ -157,6 +146,16 @@ static void network_send_username(void){ k_nSteamNetworkingSend_Reliable, NULL ); } +static void network_disconnect(void){ + SteamAPI_ISteamNetworkingSockets_CloseConnection( + hSteamNetworkingSockets, network_client.remote, 0, NULL, 0 ); + network_client.remote = 0; + + for( int i=0; im_pubParam; vg_info( " Connection status changed for %lu\n", info->m_hConn ); @@ -193,16 +192,11 @@ static void on_server_connect_status( CallbackMsg_t *msg ){ k_ESteamNetConnectionEnd_Remote_Max ){ network_client.retries = 40; } - - SteamAPI_ISteamNetworkingSockets_CloseConnection( - hSteamNetworkingSockets, info->m_hConn, 0, NULL, 0 ); - network_client.remote = 0; + network_disconnect(); } else if( info->m_info.m_eState == k_ESteamNetworkingConnectionState_ProblemDetectedLocally ){ - SteamAPI_ISteamNetworkingSockets_CloseConnection( - hSteamNetworkingSockets, info->m_hConn, 0, NULL, 0 ); - network_client.remote = 0; + network_disconnect(); } } else{ @@ -215,8 +209,12 @@ static void on_persona_state_change( CallbackMsg_t *msg ){ 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_EPersonaChangeNickname ){ + if( info->m_nChangeFlags & k_EPersonaChangeName ){ network_send_username(); } } @@ -321,8 +319,10 @@ static void network_update(void){ if( frame_delta > 0.1 ){ network_client.last_frame = vg.time_real; - network_send_playerframe(); + remote_player_send_playerframe(); } + + remote_player_debug_update(); } else { if( (state == k_ESteamNetworkingConnectionState_Connecting) ||