bool bDone = false;
for (int iPass = 0; iPass < 2 * MAX_PLAYERS && !bDone; iPass++)
{
std::vector<int> aiShuffledTeams(MAX_TEAMS);
getSorenRand().shuffleSequence(aiShuffledTeams, "Team starting plot");
//Start : What I removed
/*for (int iHuman = 0; iHuman <= 1; ++iHuman)
{
for (iI = 0; iI < MAX_TEAMS; ++iI)
{
TeamTypes eTeam = (TeamTypes) aiShuffledTeams[iI];
CvTeam& kTeam = GET_TEAM(eTeam);
//do all human teams before AI teams
if (kTeam.isAlive() && (iHuman == (kTeam.isHuman() ? 0 : 1)))
{
for (iJ = 0; iJ < MAX_PLAYERS; ++iJ)
{
CvPlayer& kPlayer = GET_PLAYER((PlayerTypes)iJ);
if (kPlayer.isAlive() && kPlayer.getTeam() == eTeam)
{
if (kPlayer.getStartingPlot() == NULL)
{
CvPlot* pStartingPlot = kPlayer.findStartingPlot(false);
if (NULL != pStartingPlot)
{
kPlayer.setStartingPlot(pStartingPlot, true);
}
break;
}
}
}
}
}
}*/
//End : What I removed
//Start : What I added
for (iJ = MAX_PLAYERS-1; iJ >=0; iJ--)
{
CvPlayer& kPlayer = GET_PLAYER((PlayerTypes)iJ);
if (kPlayer.isAlive())
{
if (kPlayer.getStartingPlot() == NULL)
{
CvPlot* pStartingPlot = kPlayer.findStartingPlot(false);
if (NULL != pStartingPlot)
{
kPlayer.setStartingPlot(pStartingPlot, true);
}
break;
}
}
}
//End : What I added
//check all players have starting plots
bDone = true;
for (iJ = 0; iJ < MAX_PLAYERS; iJ++)
{
if (GET_PLAYER((PlayerTypes)iJ).isAlive() && GET_PLAYER((PlayerTypes)iJ).getStartingPlot() == NULL)
{
bDone = false;
}
}
}