CvGameTrade::BuildTechDifference()
- Defined in
- CvTradeClasses.cpp, line 1332
- Class
- CvGameTrade
- Hook name
CivHooks::CvGameTrade_BuildTechDifference
Hooks
static bool BeforeCvGameTrade_BuildTechDifference(CvGameTrade* self);static void AfterCvGameTrade_BuildTechDifference(CvGameTrade* self);static void ReplaceCvGameTrade_BuildTechDifference(void (*original)(CvGameTrade*), CvGameTrade* self);CivRegisterBefore<CivHooks::CvGameTrade_BuildTechDifference>(host, &BeforeCvGameTrade_BuildTechDifference);CivRegisterAfter<CivHooks::CvGameTrade_BuildTechDifference>(host, &AfterCvGameTrade_BuildTechDifference);CivRegisterReplace<CivHooks::CvGameTrade_BuildTechDifference>(host, &ReplaceCvGameTrade_BuildTechDifference);
Code
1332void CvGameTrade::BuildTechDifference ()1333{1334 if(GC.getGame().isOption(GAMEOPTION_NO_SCIENCE))1335 {1336 return;1337 }13381339 // for each major civ1340 for (uint uiPlayer1 = 0; uiPlayer1 < MAX_MAJOR_CIVS; uiPlayer1++)1341 {1342 PlayerTypes ePlayer1 = (PlayerTypes)uiPlayer1;1343 TeamTypes eTeam1 = GET_PLAYER(ePlayer1).getTeam();13441345 for (uint uiPlayer2 = 0; uiPlayer2 < MAX_MAJOR_CIVS; uiPlayer2++)1346 { 1347 PlayerTypes ePlayer2 = (PlayerTypes)uiPlayer2;1348 TeamTypes eTeam2 = GET_PLAYER(ePlayer2).getTeam();13491350 if (eTeam1 == eTeam2) 1351 {1352 m_aaiTechDifference[uiPlayer1][uiPlayer2] = 0;1353 }1354 else if (!GET_PLAYER(ePlayer1).isAlive() || !GET_PLAYER(ePlayer2).isAlive())1355 {1356 m_aaiTechDifference[uiPlayer1][uiPlayer2] = 0;1357 }1358 else1359 {1360 int iTechDifference = 0;1361 1362 CvPlayerTechs* pPlayerTechs = GET_PLAYER(ePlayer1).GetPlayerTechs();1363 for(int iTechLoop = 0; iTechLoop < pPlayerTechs->GetTechs()->GetNumTechs(); iTechLoop++)1364 {1365 TechTypes eTech = (TechTypes)iTechLoop;1366 bool bPlayer1Knows = GET_TEAM(eTeam1).GetTeamTechs()->HasTech(eTech);1367 bool bPlayer2Knows = GET_TEAM(eTeam2).GetTeamTechs()->HasTech(eTech);1368 if (bPlayer2Knows && !bPlayer1Knows)1369 {1370 iTechDifference++;1371 }1372 }13731374 m_aaiTechDifference[uiPlayer1][uiPlayer2] = iTechDifference;1375 }1376 }1377 }1378}
Calls
- CvGame::isOption(GameOptionTypes) const
- CvGlobals::getGame()
- CvPlayer::GetPlayerTechs() const
- CvPlayer::getTeam() const
- CvPlayer::isAlive() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerTechs::GetTechs() const
- CvTeam::getTeam(TeamTypes)
- CvTeam::GetTeamTechs() const
- CvTeamTechs::HasTech(TechTypes) const
- CvTechXMLEntries::GetNumTechs()