Bazaar developer reference

CvStartPositioner::RankPlayerStartOrder()

Defined in
CvStartPositioner.cpp, line 119
Class
CvStartPositioner
Hook name
CivHooks::CvStartPositioner_RankPlayerStartOrder

Hooks

static bool BeforeCvStartPositioner_RankPlayerStartOrder(CvStartPositioner* self);static void AfterCvStartPositioner_RankPlayerStartOrder(CvStartPositioner* self);static void ReplaceCvStartPositioner_RankPlayerStartOrder(void (*original)(CvStartPositioner*), CvStartPositioner* self);CivRegisterBefore<CivHooks::CvStartPositioner_RankPlayerStartOrder>(host, &BeforeCvStartPositioner_RankPlayerStartOrder);CivRegisterAfter<CivHooks::CvStartPositioner_RankPlayerStartOrder>(host, &AfterCvStartPositioner_RankPlayerStartOrder);CivRegisterReplace<CivHooks::CvStartPositioner_RankPlayerStartOrder>(host, &ReplaceCvStartPositioner_RankPlayerStartOrder);

Code

118/// Take into account handicaps to rank the "draft order" for start positions119void CvStartPositioner::RankPlayerStartOrder()120{121	CUSTOMLOG("CvStartPositioner::RankPlayerStartOrder()");122	// Clear rankings123	m_PlayerOrder.clear();124125	// Add each player126	for(int iI = 0; iI < MAX_CIV_PLAYERS; iI++)127	{128		CvPlayerAI& player = GET_PLAYER((PlayerTypes)iI);129130		if(player.isAlive())131		{132			if(player.getStartingPlot() == NULL)133			{134				CvPlayerStartRank playerRank;135				playerRank.m_iPlayerID = iI;136137				// Following assumes that StartingLocationPercent in Handicap XML rises in increments of 10!138				//    We put all the major civs first (values 1 to 100), using a random number to rank players at the same handicap139				//    Then we put all the minor civs in next (values 100 to 1000).140				playerRank.m_iRank = player.getHandicapInfo().getStartingLocationPercent();141				if(player.isMinorCiv())142				{143					playerRank.m_iRank *= 10;144				}145				playerRank.m_iRank += GC.getGame().getJonRandNum(10, "Player Start Plot Draft Order");146				m_PlayerOrder.push_back(playerRank);147			}148		}149	}150151	// Sort by rank152	std::sort(m_PlayerOrder.begin(), m_PlayerOrder.end());153}

Calls

Called by