+ last_player->next = player =
+ checked_malloc(sizeof(struct NetworkClientPlayerInfo));
+ player->nr = new_client_nr;
+ player->name[0] = '\0';
+ player->next = NULL;
+
+ stored_player[new_index_nr].connected = TRUE;
+}
+
+static void Handle_OP_PLAYER_DISCONNECTED()
+{
+ struct NetworkClientPlayerInfo *player, *player_disconnected;
+ int player_nr = (int)buffer[0];
+
+ printf("OP_PLAYER_DISCONNECTED: %d\n", player_nr);
+ player_disconnected = getNetworkPlayer(player_nr);
+ Error(ERR_NETWORK_CLIENT, "client %d (%s) disconnected",
+ player_nr, getNetworkPlayerName(buffer[0]));
+
+ for (player = &first_player; player; player = player->next)
+ if (player->next == player_disconnected)
+ player->next = player_disconnected->next;
+ free(player_disconnected);