Bazaar developer reference

CvTeam::DoMinorCivTech()

Defined in
CvTeam.cpp, line 909
Class
CvTeam
Hook name
CivHooks::CvTeam_DoMinorCivTech

Hooks

static bool BeforeCvTeam_DoMinorCivTech(CvTeam* self);static void AfterCvTeam_DoMinorCivTech(CvTeam* self);static void ReplaceCvTeam_DoMinorCivTech(void (*original)(CvTeam*), CvTeam* self);CivRegisterBefore<CivHooks::CvTeam_DoMinorCivTech>(host, &BeforeCvTeam_DoMinorCivTech);CivRegisterAfter<CivHooks::CvTeam_DoMinorCivTech>(host, &AfterCvTeam_DoMinorCivTech);CivRegisterReplace<CivHooks::CvTeam_DoMinorCivTech>(host, &ReplaceCvTeam_DoMinorCivTech);

Code

908/// Minor Civ Tech Progress909void CvTeam::DoMinorCivTech()910{911	int iCount;912913	TechTypes eTech;914	TeamTypes eTeam;915916	int iPossibleCount = 0;917918	// See how many majors are still around919	int iTeamLoop;920	for(iTeamLoop = 0; iTeamLoop < MAX_CIV_TEAMS; iTeamLoop++)921	{922		eTeam = (TeamTypes) iTeamLoop;923924		if(GET_TEAM(eTeam).isAlive())925		{926			if(!GET_TEAM(eTeam).isMinorCiv())927			{928				iPossibleCount++;929			}930		}931	}932933	CvAssertMsg(iPossibleCount > 0, "Zero possible players? Uhhh...");934935	// 40% of majors (rounded down) need the tech for the Minors to get it936	int iTechPercent = /*40*/ GC.getMINOR_CIV_TECH_PERCENT();937	int iTeamsNeeded = max(1, iPossibleCount * iTechPercent / 100);938939	for(int iTechLoop = 0; iTechLoop < GC.getNumTechInfos(); iTechLoop++)940	{941		eTech = (TechTypes) iTechLoop;942943		if(!GetTeamTechs()->HasTech(eTech))944		{945			iCount = 0;946947			for(iTeamLoop = 0; iTeamLoop < MAX_CIV_TEAMS; iTeamLoop++)948			{949				eTeam = (TeamTypes) iTeamLoop;950951				if(GET_TEAM(eTeam).isAlive())952				{953					// Only look at Majors954					if(!GET_TEAM(eTeam).isMinorCiv())955					{956						if(GET_TEAM(eTeam).GetTeamTechs()->HasTech(eTech))957						{958							iCount++;959						}960					}961				}962			}963964			// Do enough majors have this tech?965			if(iCount >= iTeamsNeeded)966			{967				setHasTech(eTech, true, getLeaderID(), false, false);968			}969		}970	}971}

Calls

Called by