Bazaar developer reference

CvGameReligions::GetAvailableReformationBeliefs(PlayerTypes, ReligionTypes)

Defined in
CvReligionClasses.cpp, line 2272
Class
CvGameReligions
Hook name
CivHooks::CvGameReligions_GetAvailableReformationBeliefs
Lua events
GameEvents.ReligionCanHaveBelief

Hooks

static bool BeforeCvGameReligions_GetAvailableReformationBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static void AfterCvGameReligions_GetAvailableReformationBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static std::vector<BeliefTypes> ReplaceCvGameReligions_GetAvailableReformationBeliefs(std::vector<BeliefTypes> (*original)(CvGameReligions*, PlayerTypes, ReligionTypes), CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion);CivRegisterBefore<CivHooks::CvGameReligions_GetAvailableReformationBeliefs>(host, &BeforeCvGameReligions_GetAvailableReformationBeliefs);CivRegisterAfter<CivHooks::CvGameReligions_GetAvailableReformationBeliefs>(host, &AfterCvGameReligions_GetAvailableReformationBeliefs);CivRegisterReplace<CivHooks::CvGameReligions_GetAvailableReformationBeliefs>(host, &ReplaceCvGameReligions_GetAvailableReformationBeliefs);

Code

2270/// List of beliefs that are added with Reformation social policy2271#if defined(MOD_EVENTS_ACQUIRE_BELIEFS) || defined(MOD_TRAITS_ANY_BELIEF)2272std::vector<BeliefTypes> CvGameReligions::GetAvailableReformationBeliefs(PlayerTypes ePlayer, ReligionTypes eReligion)2273#else2274std::vector<BeliefTypes> CvGameReligions::GetAvailableReformationBeliefs()2275#endif2276{2277	std::vector<BeliefTypes> availableBeliefs;22782279	CvBeliefXMLEntries* pkBeliefs = GC.GetGameBeliefs();2280	const int iNumBeleifs = pkBeliefs->GetNumBeliefs();22812282	availableBeliefs.reserve(iNumBeleifs);2283	for(int iI = 0; iI < iNumBeleifs; iI++)2284	{2285		const BeliefTypes eBelief(static_cast<BeliefTypes>(iI));2286#if defined(MOD_TRAITS_ANY_BELIEF)2287		if(!IsInSomeReligion(eBelief, ePlayer))2288#else2289		if(!IsInSomeReligion(eBelief))2290#endif2291		{2292			CvBeliefEntry* pEntry = pkBeliefs->GetEntry(eBelief);2293			if(pEntry && pEntry->IsReformationBelief())2294			{2295#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2296				bool bAvailable = true;22972298				if (MOD_EVENTS_ACQUIRE_BELIEFS) {2299					if (GAMEEVENTINVOKE_TESTALL(GAMEEVENT_ReligionCanHaveBelief, ePlayer, eReligion, eBelief) == GAMEEVENTRETURN_FALSE) {2300						bAvailable = false;2301					}2302				}23032304				if (bAvailable) {2305#endif2306					availableBeliefs.push_back(eBelief);2307#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2308				}2309#endif2310			}2311		}2312	}23132314	return availableBeliefs;2315}

Calls

Called by