Hey there Inph,
I really wouldn’t go that way, of keeping a bool for each player start location. As it seems you have an array of the player start locations, I would define an invisible box around each location, that could then be checked to see if any player was inside that box, hence you would be able to not spawn a player, if another player was within X distance of the player start point (which would also have the nice side affect of helping to prevent “camping” of a start point). Then just cycle through the start points till you find one that is open, if none are open, then choose the one where the player(s) are farthest away.
You could still go ahead and create a temp array to pull a random player start, using this method, by just populating the array with open player start points as you check them.
Anyway, hope this helps.