steam friend/block info on remote players structures
[carveJwlIkooP6JGAAIwe30JlM.git] / player_remote.c
index 8ab15e0a382de43d5c4b820c04d3b232da0441d2..2cc3d6bcd45afa6f473331794c2ceb70d63f1ba2 100644 (file)
@@ -58,6 +58,14 @@ static void relink_all_remote_player_worlds(void){
    }
 }
 
+static void player_remote_update_friendflags( struct network_player *remote ){
+   ISteamFriends *hSteamFriends = SteamAPI_SteamFriends();
+   remote->isfriend = SteamAPI_ISteamFriends_HasFriend( hSteamFriends,
+                        remote->steamid, k_EFriendFlagImmediate );
+   remote->isblocked = SteamAPI_ISteamFriends_HasFriend( hSteamFriends,
+                        remote->steamid, k_EFriendFlagBlocked );
+}
+
 static void player_remote_rx_200_300( SteamNetworkingMessage_t *msg ){
    netmsg_blank *tmp = msg->m_pData;
 
@@ -69,6 +77,8 @@ static void player_remote_rx_200_300( SteamNetworkingMessage_t *msg ){
          struct network_player *player = &netplayers.list[ playerjoin->index ];
          player_remote_clear( player );
          player->active = 1;
+         player->steamid = playerjoin->steamid;
+         player_remote_update_friendflags( player );
 
          /* TODO: interpret the uids */
          player->board_view_slot = 0;
@@ -80,7 +90,8 @@ static void player_remote_rx_200_300( SteamNetworkingMessage_t *msg ){
             buf->frames[i].active = 0;
          }
 
-         vg_info( "#%u joined\n", playerjoin->index );
+         vg_info( "#%u joined friend: %d, blocked: %d\n", 
+                  playerjoin->index, player->isfriend, player->isblocked );
       }
       else {
          vg_error( "inetmsg_playerjoin: player index out of range\n" );