Bazaar developer reference

CvReligionAI::ChooseFounderBelief(PlayerTypes, ReligionTypes)

Defined in
CvReligionClasses.cpp, line 5107
Class
CvReligionAI
Hook name
CivHooks::CvReligionAI_ChooseFounderBelief

Hooks

static bool BeforeCvReligionAI_ChooseFounderBelief(CvReligionAI* self, PlayerTypes ePlayer, ReligionTypes eReligion, BeliefTypes& result);static void AfterCvReligionAI_ChooseFounderBelief(CvReligionAI* self, PlayerTypes ePlayer, ReligionTypes eReligion, BeliefTypes& result);static BeliefTypes ReplaceCvReligionAI_ChooseFounderBelief(BeliefTypes (*original)(CvReligionAI*, PlayerTypes, ReligionTypes), CvReligionAI* self, PlayerTypes ePlayer, ReligionTypes eReligion);CivRegisterBefore<CivHooks::CvReligionAI_ChooseFounderBelief>(host, &BeforeCvReligionAI_ChooseFounderBelief);CivRegisterAfter<CivHooks::CvReligionAI_ChooseFounderBelief>(host, &AfterCvReligionAI_ChooseFounderBelief);CivRegisterReplace<CivHooks::CvReligionAI_ChooseFounderBelief>(host, &ReplaceCvReligionAI_ChooseFounderBelief);

Code

5105/// Select the belief most helpful to this pantheon5106#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)5107BeliefTypes CvReligionAI::ChooseFounderBelief(PlayerTypes ePlayer, ReligionTypes eReligion)5108#else5109BeliefTypes CvReligionAI::ChooseFounderBelief()5110#endif5111{5112	CvGameReligions* pGameReligions = GC.getGame().GetGameReligions();5113	CvWeightedVector<BeliefTypes, SAFE_ESTIMATE_NUM_BELIEFS, true> beliefChoices;51145115#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)5116	std::vector<BeliefTypes> availableBeliefs = pGameReligions->GetAvailableFounderBeliefs(ePlayer, eReligion);5117#else5118	std::vector<BeliefTypes> availableBeliefs = pGameReligions->GetAvailableFounderBeliefs();5119#endif51205121	for(std::vector<BeliefTypes>::iterator it = availableBeliefs.begin();5122	        it!= availableBeliefs.end(); ++it)5123	{5124		const BeliefTypes eBelief = (*it);5125		CvBeliefEntry* pEntry = m_pBeliefs->GetEntry(eBelief);5126		if(pEntry)5127		{5128			const int iScore = ScoreBelief(pEntry);5129#if !defined(MOD_BUGFIX_MINOR)5130			if(iScore > 0)5131			{5132#endif5133				beliefChoices.push_back(eBelief, iScore);5134#if !defined(MOD_BUGFIX_MINOR)5135			}5136#endif5137		}5138	}51395140	// Choose from weighted vector5141	beliefChoices.SortItems();5142	int iNumChoices = MIN(beliefChoices.size(),3);   // this was way too loose as choices way down were being selected now only top 35143	RandomNumberDelegate fcn = MakeDelegate(&GC.getGame(), &CvGame::getJonRandNum);5144	BeliefTypes rtnValue = beliefChoices.ChooseFromTopChoices(iNumChoices, &fcn, "Choosing belief from Top Choices");5145	LogBeliefChoices(beliefChoices, rtnValue);51465147	return rtnValue;5148}

Calls

Called by