Bazaar developer reference

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

Called by