Bazaar developer reference

CvPlayerAI::GetDirectiveEngineer(CvUnit *)

Defined in
CvPlayerAI.cpp, line 1227
Class
CvPlayerAI
Hook name
CivHooks::CvPlayerAI_GetDirectiveEngineer

Hooks

static bool BeforeCvPlayerAI_GetDirectiveEngineer(CvPlayerAI* self, CvUnit* pGreatEngineer, GreatPeopleDirectiveTypes& result);static void AfterCvPlayerAI_GetDirectiveEngineer(CvPlayerAI* self, CvUnit* pGreatEngineer, GreatPeopleDirectiveTypes& result);static GreatPeopleDirectiveTypes ReplaceCvPlayerAI_GetDirectiveEngineer(GreatPeopleDirectiveTypes (*original)(CvPlayerAI*, CvUnit*), CvPlayerAI* self, CvUnit* pGreatEngineer);CivRegisterBefore<CivHooks::CvPlayerAI_GetDirectiveEngineer>(host, &BeforeCvPlayerAI_GetDirectiveEngineer);CivRegisterAfter<CivHooks::CvPlayerAI_GetDirectiveEngineer>(host, &AfterCvPlayerAI_GetDirectiveEngineer);CivRegisterReplace<CivHooks::CvPlayerAI_GetDirectiveEngineer>(host, &ReplaceCvPlayerAI_GetDirectiveEngineer);

Code

1227GreatPeopleDirectiveTypes CvPlayerAI::GetDirectiveEngineer(CvUnit* pGreatEngineer)1228{1229	GreatPeopleDirectiveTypes eDirective = NO_GREAT_PEOPLE_DIRECTIVE_TYPE;12301231	// look for a wonder to rush1232	if(eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE)1233	{1234		int iNextWonderWeight;1235		BuildingTypes eNextWonderDesired = GetWonderProductionAI()->ChooseWonder(false /*bUseAsyncRandom*/, false /*bAdjustForOtherPlayers*/, iNextWonderWeight);1236		if(eNextWonderDesired != NO_BUILDING)1237		{1238			eDirective = GREAT_PEOPLE_DIRECTIVE_USE_POWER;1239		}1240	}12411242	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GC.getGame().getGameTurn() <= ((GC.getGame().getEstimateEndTurn() * 3) / 4))1243	{1244		if (GetDiplomacyAI()->IsGoingForWorldConquest())1245		{1246			eDirective = GREAT_PEOPLE_DIRECTIVE_CONSTRUCT_IMPROVEMENT;1247		}1248	}12491250	if(eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && (GC.getGame().getGameTurn() - pGreatEngineer->getGameTurnCreated()) >= GC.getAI_HOMELAND_GREAT_PERSON_TURNS_TO_WAIT())1251	{1252		eDirective = GREAT_PEOPLE_DIRECTIVE_CONSTRUCT_IMPROVEMENT;1253	}12541255	return eDirective;1256}

Calls

Called by