Bazaar developer reference

CvTeam::updateTechShare(TechTypes)

Defined in
CvTeam.cpp, line 6276
Class
CvTeam
Hook name
CivHooks::CvTeam_updateTechShare

Hooks

static bool BeforeCvTeam_updateTechShare(CvTeam* self, TechTypes eTech);static void AfterCvTeam_updateTechShare(CvTeam* self, TechTypes eTech);static void ReplaceCvTeam_updateTechShare(void (*original)(CvTeam*, TechTypes), CvTeam* self, TechTypes eTech);CivRegisterBefore<CivHooks::CvTeam_updateTechShare>(host, &BeforeCvTeam_updateTechShare);CivRegisterAfter<CivHooks::CvTeam_updateTechShare>(host, &AfterCvTeam_updateTechShare);CivRegisterReplace<CivHooks::CvTeam_updateTechShare>(host, &ReplaceCvTeam_updateTechShare);

Code

6276void CvTeam::updateTechShare(TechTypes eTech)6277{6278	int iBestShare;6279	int iCount;6280	int iI;62816282	if(GetTeamTechs()->HasTech(eTech))6283	{6284		return;6285	}62866287	iBestShare = numeric_limits<int>::max();62886289	for(iI = 0; iI < MAX_TEAMS; iI++)6290	{6291		if(isTechShare(iI))6292		{6293			iBestShare = std::min(iBestShare, (iI + 1));6294		}6295	}62966297	if(iBestShare != INT_MAX)6298	{6299		iCount = 0;63006301		for(iI = 0; iI < MAX_CIV_TEAMS; iI++)6302		{6303			if(GET_TEAM((TeamTypes)iI).isAlive())6304			{6305				if(GET_TEAM((TeamTypes)iI).GetTeamTechs()->HasTech(eTech))6306				{6307					if(isHasMet((TeamTypes)iI))6308					{6309						CvAssertMsg(iI != GetID(), "iI is not expected to be equal with GetID()");6310						iCount++;6311					}6312				}6313			}6314		}63156316		if(iCount >= iBestShare)6317		{6318			setHasTech(eTech, true, NO_PLAYER, true, true);6319		}6320	}6321}

Calls

Called by