Bazaar developer reference

CvReligionAI::ChooseEnhancerBelief(PlayerTypes, ReligionTypes)

Defined in
CvReligionClasses.cpp, line 5197
Class
CvReligionAI
Hook name
CivHooks::CvReligionAI_ChooseEnhancerBelief

Hooks

static bool BeforeCvReligionAI_ChooseEnhancerBelief(CvReligionAI* self, PlayerTypes ePlayer, ReligionTypes eReligion, BeliefTypes& result);static void AfterCvReligionAI_ChooseEnhancerBelief(CvReligionAI* self, PlayerTypes ePlayer, ReligionTypes eReligion, BeliefTypes& result);static BeliefTypes ReplaceCvReligionAI_ChooseEnhancerBelief(BeliefTypes (*original)(CvReligionAI*, PlayerTypes, ReligionTypes), CvReligionAI* self, PlayerTypes ePlayer, ReligionTypes eReligion);CivRegisterBefore<CivHooks::CvReligionAI_ChooseEnhancerBelief>(host, &BeforeCvReligionAI_ChooseEnhancerBelief);CivRegisterAfter<CivHooks::CvReligionAI_ChooseEnhancerBelief>(host, &AfterCvReligionAI_ChooseEnhancerBelief);CivRegisterReplace<CivHooks::CvReligionAI_ChooseEnhancerBelief>(host, &ReplaceCvReligionAI_ChooseEnhancerBelief);

Code

5195/// Select the belief most helpful to enhance this religion5196#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)5197BeliefTypes CvReligionAI::ChooseEnhancerBelief(PlayerTypes ePlayer, ReligionTypes eReligion)5198#else5199BeliefTypes CvReligionAI::ChooseEnhancerBelief()5200#endif5201{5202	CvGameReligions* pGameReligions = GC.getGame().GetGameReligions();5203	CvWeightedVector<BeliefTypes, SAFE_ESTIMATE_NUM_BELIEFS, true> beliefChoices;52045205#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)5206	std::vector<BeliefTypes> availableBeliefs = pGameReligions->GetAvailableEnhancerBeliefs(ePlayer, eReligion);5207#else5208	std::vector<BeliefTypes> availableBeliefs = pGameReligions->GetAvailableEnhancerBeliefs();5209#endif52105211	for(std::vector<BeliefTypes>::iterator it = availableBeliefs.begin();5212	        it!= availableBeliefs.end(); ++it)5213	{5214		const BeliefTypes eBelief = (*it);5215		CvBeliefEntry* pEntry = m_pBeliefs->GetEntry(eBelief);5216		if(pEntry)5217		{5218			const int iScore = ScoreBelief(pEntry);5219#if !defined(MOD_BUGFIX_MINOR)5220			if(iScore > 0)5221			{5222#endif5223				beliefChoices.push_back(eBelief, iScore);5224#if !defined(MOD_BUGFIX_MINOR)5225			}5226#endif5227		}5228	}52295230	// Choose from weighted vector5231	beliefChoices.SortItems();5232	int iNumChoices = MIN(beliefChoices.size(),3);   // this was way too loose as choices way down were being selected now only top 35233	RandomNumberDelegate fcn = MakeDelegate(&GC.getGame(), &CvGame::getJonRandNum);5234	BeliefTypes rtnValue = beliefChoices.ChooseFromTopChoices(iNumChoices, &fcn, "Choosing belief from Top Choices");5235	LogBeliefChoices(beliefChoices, rtnValue);52365237	return rtnValue;5238}

Calls

Called by