CvGameReligions::GetAvailableBonusBeliefs(PlayerTypes, ReligionTypes)
- Defined in
- CvReligionClasses.cpp, line 2225
- Class
- CvGameReligions
- Hook name
CivHooks::CvGameReligions_GetAvailableBonusBeliefs- Lua events
GameEvents.ReligionCanHaveBelief
Hooks
static bool BeforeCvGameReligions_GetAvailableBonusBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static void AfterCvGameReligions_GetAvailableBonusBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static std::vector<BeliefTypes> ReplaceCvGameReligions_GetAvailableBonusBeliefs(std::vector<BeliefTypes> (*original)(CvGameReligions*, PlayerTypes, ReligionTypes), CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion);CivRegisterBefore<CivHooks::CvGameReligions_GetAvailableBonusBeliefs>(host, &BeforeCvGameReligions_GetAvailableBonusBeliefs);CivRegisterAfter<CivHooks::CvGameReligions_GetAvailableBonusBeliefs>(host, &AfterCvGameReligions_GetAvailableBonusBeliefs);CivRegisterReplace<CivHooks::CvGameReligions_GetAvailableBonusBeliefs>(host, &ReplaceCvGameReligions_GetAvailableBonusBeliefs);
Code
2223/// List of all beliefs still available2224#if defined(MOD_EVENTS_ACQUIRE_BELIEFS) || defined(MOD_TRAITS_ANY_BELIEF)2225std::vector<BeliefTypes> CvGameReligions::GetAvailableBonusBeliefs(PlayerTypes ePlayer, ReligionTypes eReligion)2226#else2227std::vector<BeliefTypes> CvGameReligions::GetAvailableBonusBeliefs()2228#endif2229{2230 std::vector<BeliefTypes> availableBeliefs;22312232 CvBeliefXMLEntries* pkBeliefs = GC.GetGameBeliefs();2233 const int iNumBeleifs = pkBeliefs->GetNumBeliefs();22342235 availableBeliefs.reserve(iNumBeleifs);2236 for(int iI = 0; iI < iNumBeleifs; iI++)2237 {2238 const BeliefTypes eBelief(static_cast<BeliefTypes>(iI));2239#if defined(MOD_TRAITS_ANY_BELIEF)2240 if(!IsInSomeReligion(eBelief, ePlayer))2241#else2242 if(!IsInSomeReligion(eBelief))2243#endif2244 {2245 CvBeliefEntry* pEntry = pkBeliefs->GetEntry(eBelief);2246 if(pEntry && (pEntry->IsEnhancerBelief() || pEntry->IsFollowerBelief() || pEntry->IsFounderBelief() || pEntry->IsPantheonBelief()))2247 {2248#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2249 bool bAvailable = true;22502251 if (MOD_EVENTS_ACQUIRE_BELIEFS) {2252 if (GAMEEVENTINVOKE_TESTALL(GAMEEVENT_ReligionCanHaveBelief, ePlayer, eReligion, eBelief) == GAMEEVENTRETURN_FALSE) {2253 bAvailable = false;2254 }2255 }22562257 if (bAvailable) {2258#endif2259 availableBeliefs.push_back(eBelief);2260#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2261 }2262#endif2263 }2264 }2265 }22662267 return availableBeliefs;2268}
Calls
- CustomMods::eventTestAll(const char *, const char *, ...)
- CustomMods::isEVENTS_ACQUIRE_BELIEFS()
- CvBeliefEntry::IsEnhancerBelief() const
- CvBeliefEntry::IsFollowerBelief() const
- CvBeliefEntry::IsFounderBelief() const
- CvBeliefEntry::IsPantheonBelief() const
- CvBeliefXMLEntries::GetEntry(int)
- CvBeliefXMLEntries::GetNumBeliefs()
- CvGameReligions::IsInSomeReligion(BeliefTypes, PlayerTypes) const
- CvGlobals::GetGameBeliefs() const
std::vector::push_backstd::vector::reservestd::vector::vectorstd::vector::vector