Bazaar developer reference

CvPlayerAI::GetDirectiveMusician(CvUnit *)

Defined in
CvPlayerAI.cpp, line 1185
Class
CvPlayerAI
Hook name
CivHooks::CvPlayerAI_GetDirectiveMusician

Hooks

static bool BeforeCvPlayerAI_GetDirectiveMusician(CvPlayerAI* self, CvUnit* pGreatMusician, GreatPeopleDirectiveTypes& result);static void AfterCvPlayerAI_GetDirectiveMusician(CvPlayerAI* self, CvUnit* pGreatMusician, GreatPeopleDirectiveTypes& result);static GreatPeopleDirectiveTypes ReplaceCvPlayerAI_GetDirectiveMusician(GreatPeopleDirectiveTypes (*original)(CvPlayerAI*, CvUnit*), CvPlayerAI* self, CvUnit* pGreatMusician);CivRegisterBefore<CivHooks::CvPlayerAI_GetDirectiveMusician>(host, &BeforeCvPlayerAI_GetDirectiveMusician);CivRegisterAfter<CivHooks::CvPlayerAI_GetDirectiveMusician>(host, &AfterCvPlayerAI_GetDirectiveMusician);CivRegisterReplace<CivHooks::CvPlayerAI_GetDirectiveMusician>(host, &ReplaceCvPlayerAI_GetDirectiveMusician);

Code

1185GreatPeopleDirectiveTypes CvPlayerAI::GetDirectiveMusician(CvUnit* pGreatMusician)1186{1187	GreatPeopleDirectiveTypes eDirective = NO_GREAT_PEOPLE_DIRECTIVE_TYPE;11881189	// If headed on a concert tour, keep going1190	if (pGreatMusician->getArmyID() != FFreeList::INVALID_INDEX)1191	{1192		eDirective = GREAT_PEOPLE_DIRECTIVE_TOURISM_BLAST;1193	}11941195	// If closing in on a Culture win, go for the Concert Tour1196	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetDiplomacyAI()->IsGoingForCultureVictory() && GetCulture()->GetNumCivsInfluentialOn() > (GC.getGame().GetGameCulture()->GetNumCivsInfluentialForWin() / 2))1197	{		1198		CvPlot* pTarget = FindBestMusicianTargetPlot(pGreatMusician, true);1199		if(pTarget)1200		{1201			eDirective = GREAT_PEOPLE_DIRECTIVE_TOURISM_BLAST;1202		}1203	}12041205	// Create Great Work if there is a slot1206	GreatWorkType eGreatWork = pGreatMusician->GetGreatWork();1207	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetEconomicAI()->GetBestGreatWorkCity(pGreatMusician->plot(), eGreatWork))1208	{1209		eDirective = GREAT_PEOPLE_DIRECTIVE_USE_POWER;1210	}1211#if defined(MOD_AI_SMART_V3)1212	else if (MOD_AI_SMART_V3 || ((GC.getGame().getGameTurn() - pGreatMusician->getGameTurnCreated()) >= (GC.getAI_HOMELAND_GREAT_PERSON_TURNS_TO_WAIT() / 2)))1213#else1214	else1215#endif1216	{1217		CvPlot* pTarget = FindBestMusicianTargetPlot(pGreatMusician, true);1218		if(pTarget)1219		{1220			eDirective = GREAT_PEOPLE_DIRECTIVE_TOURISM_BLAST;1221		}1222	}12231224	return eDirective;1225}

Calls

Called by