X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=network.h;h=83564f019f8ecb7347353c840569526f756c8759;hb=ca35eceae3abfcfb9ba266d6ea8e664bc06b0a3e;hp=b47f518dd514b5003923f523cb12d8fa9fc1866b;hpb=47941822dae18a018c985847b052e70214a3ccc6;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/network.h b/network.h index b47f518..83564f0 100644 --- a/network.h +++ b/network.h @@ -11,6 +11,8 @@ #include "network_msg.h" #include "highscores.h" +VG_STATIC int network_scores_updated = 0; + /* * Interface */ @@ -23,7 +25,7 @@ VG_STATIC void network_init(void); VG_STATIC void network_update(void); /* Call it at shutdown */ -VG_STATIC void network_end(void*_); +VG_STATIC void network_end(void); /* * Can buffer up a bunch of these by calling many times, they will be @@ -90,11 +92,12 @@ VG_STATIC void request_auth_ticket(void) */ vg_info( "Requesting new authorization ticket\n" ); - steam_async *call = steam_new_async(); - call->data = NULL; + + vg_steam_async_call *call = vg_alloc_async_steam_api_call(); + call->userdata = NULL; call->p_handler = on_auth_ticket_recieved; - call->id = SteamAPI_ISteamUser_RequestEncryptedAppTicket( hSteamUser, - NULL, 0 ); + call->id = + SteamAPI_ISteamUser_RequestEncryptedAppTicket( hSteamUser, NULL, 0 ); } VG_STATIC void send_auth_ticket(void) @@ -132,18 +135,19 @@ VG_STATIC void send_score_update(void) setscore->inetmsg_id = k_inetmsg_set_score; int count = 0; - for( u32 i=0; irecords[count].trackid = i; setscore->records[count].playerid = 0; @@ -154,9 +158,7 @@ VG_STATIC void send_score_update(void) } } - if( count == 0 ) - return; - + if( count == 0 ) return; u32 send_size = sizeof(netmsg_set_score) + count*sizeof(struct netmsg_score_record); setscore->record_count = count; @@ -172,7 +174,8 @@ VG_STATIC void send_nickname(void) nick.inetmsg_id = k_inetmsg_set_nickname; memset( nick.nickname, 0, 16 ); - vg_strncpy( steam_username_at_startup, nick.nickname, 16 ); + vg_strncpy( steam_username_at_startup, nick.nickname, 16, + k_strncpy_allow_cutoff ); SteamAPI_ISteamNetworkingSockets_SendMessageToConnection( hSteamNetworkingSockets, cremote, &nick, sizeof(netmsg_set_nickname), @@ -244,13 +247,11 @@ VG_STATIC void on_inet_scoreboard( SteamNetworkingMessage_t *msg ) sizeof(struct netmsg_board)*vg_list_size(track_infos), expected = base_size+sizeof(struct netmsg_board)*sb->board_count; - if( msg->m_cbSize != expected ) - { + if( msg->m_cbSize != expected ){ vg_error( "Server scoreboard was corrupted. Size: %u != %u\n", msg->m_cbSize, expected ); } - else - { + else{ if( vg_list_size(track_infos) > sb->board_count ) vg_warn( "Server is out of date, not enough boards recieved\n"); else if( vg_list_size(track_infos) < sb->board_count ) @@ -258,8 +259,7 @@ VG_STATIC void on_inet_scoreboard( SteamNetworkingMessage_t *msg ) else vg_success( "Recieved new scoreboards from server\n" ); - for( int i=0; i < vg_min(sb->board_count,vg_list_size(track_infos)); i++) - { + for( int i=0; i < vg_min(sb->board_count,vg_list_size(track_infos)); i++){ scoreboard_client_data.boards[i] = sb->boards[i]; highscores_board_printf( stdout, sb->boards[i].data, 10 ); } @@ -277,20 +277,17 @@ VG_STATIC void poll_connection(void) SteamNetworkingMessage_t *messages[32]; int len; - while(1) - { + while(1){ len = SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection( hSteamNetworkingSockets, cremote, messages, vg_list_size(messages)); if( len <= 0 ) return; - for( int i=0; im_cbSize < sizeof(netmsg_blank) ) - { + if( msg->m_cbSize < sizeof(netmsg_blank) ){ vg_warn( "Discarding message (too small: %d)\n", msg->m_cbSize ); continue; } @@ -310,21 +307,17 @@ VG_STATIC void poll_connection(void) */ VG_STATIC void network_update(void) { - if( steam_ready ) - { + if( steam_ready ){ static double last_update = 0.0; poll_connection(); - if( vg.time > (last_update + 60.0) ) - { + if( vg.time > (last_update + 60.0) ){ last_update = vg.time; - if( steam_app_ticket_length ) - { + if( steam_app_ticket_length ){ network_connect_gc(); } - else - { + else{ vg_low( "Not making remote connection; app ticket not gotten\n" ); } } @@ -341,15 +334,14 @@ VG_STATIC void network_update(void) VG_STATIC void network_init(void) { - if( steam_ready ) - { + if( steam_ready ){ steam_register_callback( k_iSteamNetConnectionStatusChangedCallBack, on_server_connect_status ); request_auth_ticket(); } } -VG_STATIC void network_end(void*_) +VG_STATIC void network_end(void) { /* TODO: Fire off any buffered highscores that need to be setn */ if( cremote_state == k_ESteamNetworkingConnectionState_Connected || @@ -364,7 +356,7 @@ VG_STATIC void network_end(void*_) VG_STATIC void network_init(void){} VG_STATIC void network_update(void){} -VG_STATIC void network_end(void*_){} +VG_STATIC void network_end(void){} #endif /* SR_NETWORKED */ #endif /* NETWORK_H */