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
- CvGame::getJonRandNum(int, const char *)
- CvGlobals::getGame()
- CvHandicapInfo::getStartingLocationPercent() const
- CvPlayer::getHandicapInfo() const
- CvPlayer::getStartingPlot() const
- CvPlayer::isAlive() const
- CvPlayer::isMinorCiv() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerStartRank::CvPlayerStartRank()
CvString::CvStringCvString::formatFILogFile::MsgFILogFileMgr::GetInstanceFILogFileMgr::GetLogstd::basic_string::c_strstd::sortstd::vector::beginstd::vector::clearstd::vector::endstd::vector::push_back