Bazaar developer reference

CvPlayerAI::ProcessGreatPeople()

Defined in
CvPlayerAI.cpp, line 985
Class
CvPlayerAI
Hook name
CivHooks::CvPlayerAI_ProcessGreatPeople

Hooks

static bool BeforeCvPlayerAI_ProcessGreatPeople(CvPlayerAI* self);static void AfterCvPlayerAI_ProcessGreatPeople(CvPlayerAI* self);static void ReplaceCvPlayerAI_ProcessGreatPeople(void (*original)(CvPlayerAI*), CvPlayerAI* self);CivRegisterBefore<CivHooks::CvPlayerAI_ProcessGreatPeople>(host, &BeforeCvPlayerAI_ProcessGreatPeople);CivRegisterAfter<CivHooks::CvPlayerAI_ProcessGreatPeople>(host, &AfterCvPlayerAI_ProcessGreatPeople);CivRegisterReplace<CivHooks::CvPlayerAI_ProcessGreatPeople>(host, &ReplaceCvPlayerAI_ProcessGreatPeople);

Code

985void CvPlayerAI::ProcessGreatPeople(void)986{987	SpecialUnitTypes eSpecialUnitGreatPerson = (SpecialUnitTypes) GC.getInfoTypeForString("SPECIALUNIT_PEOPLE");988989	CvAssert(isAlive());990991	if(!isAlive())992		return;993994	int iLoop;995	for(CvUnit* pLoopUnit = firstUnit(&iLoop); pLoopUnit; pLoopUnit = nextUnit(&iLoop))996	{997		if(pLoopUnit->getSpecialUnitType() != eSpecialUnitGreatPerson)998		{999			continue;1000		}10011002		GreatPeopleDirectiveTypes eDirective = NO_GREAT_PEOPLE_DIRECTIVE_TYPE;1003		switch(pLoopUnit->AI_getUnitAIType())1004		{1005		case UNITAI_WRITER:1006			eDirective = GetDirectiveWriter(pLoopUnit);1007			break;1008		case UNITAI_ARTIST:1009			eDirective = GetDirectiveArtist(pLoopUnit);1010			break;1011		case UNITAI_MUSICIAN:1012			eDirective = GetDirectiveMusician(pLoopUnit);1013			break;1014		case UNITAI_ENGINEER:1015			eDirective = GetDirectiveEngineer(pLoopUnit);1016			break;1017		case UNITAI_MERCHANT:1018			eDirective = GetDirectiveMerchant(pLoopUnit);1019			break;1020		case UNITAI_SCIENTIST:1021			eDirective = GetDirectiveScientist(pLoopUnit);1022			break;1023		case UNITAI_GENERAL:1024			eDirective = GetDirectiveGeneral(pLoopUnit);1025			break;1026		case UNITAI_PROPHET:1027			eDirective = GetDirectiveProphet(pLoopUnit);1028			break;1029		case UNITAI_ADMIRAL:1030			eDirective = GetDirectiveAdmiral(pLoopUnit);1031			break;1032		}10331034		pLoopUnit->SetGreatPeopleDirective(eDirective);1035	}1036}

Calls

Called by