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}