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
- CustomMods::eventTestAll(const char *, const char *, ...)
- CustomMods::isEVENTS_ACQUIRE_BELIEFS()
- CvBeliefEntry::IsReformationBelief() const
- CvBeliefXMLEntries::GetEntry(int)
- CvBeliefXMLEntries::GetNumBeliefs()
- CvGameReligions::IsInSomeReligion(BeliefTypes, PlayerTypes) const
- CvGlobals::GetGameBeliefs() const
std::vector::push_backstd::vector::reservestd::vector::vectorstd::vector::vector