CvDllNetMessageHandler::ResponseFoundPantheon(PlayerTypes, BeliefTypes)
- Defined in
- CvDllNetMessageHandler.cpp, line 284
- Class
- CvDllNetMessageHandler
- Hook name
CivHooks::CvDllNetMessageHandler_ResponseFoundPantheon
Hooks
static bool BeforeCvDllNetMessageHandler_ResponseFoundPantheon(CvDllNetMessageHandler* self, PlayerTypes ePlayer, BeliefTypes eBelief);static void AfterCvDllNetMessageHandler_ResponseFoundPantheon(CvDllNetMessageHandler* self, PlayerTypes ePlayer, BeliefTypes eBelief);static void ReplaceCvDllNetMessageHandler_ResponseFoundPantheon(void (*original)(CvDllNetMessageHandler*, PlayerTypes, BeliefTypes), CvDllNetMessageHandler* self, PlayerTypes ePlayer, BeliefTypes eBelief);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseFoundPantheon::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponseFoundPantheon);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseFoundPantheon::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponseFoundPantheon);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseFoundPantheon::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponseFoundPantheon);
Code
284void CvDllNetMessageHandler::ResponseFoundPantheon(PlayerTypes ePlayer, BeliefTypes eBelief)285{286 CvGame& kGame(GC.getGame());287 CvGameReligions* pkGameReligions(kGame.GetGameReligions());288 CvBeliefXMLEntries* pkBeliefs = GC.GetGameBeliefs();289 CvBeliefEntry* pEntry = pkBeliefs->GetEntry((int)eBelief);290291 // Pantheon belief, or adding one through Reformation?292 if (pEntry && ePlayer != NO_PLAYER)293 {294 if (pEntry->IsPantheonBelief())295 {296 CvGameReligions::FOUNDING_RESULT eResult = pkGameReligions->CanCreatePantheon(ePlayer, true);297 if(eResult == CvGameReligions::FOUNDING_OK)298 {299#if defined(MOD_TRAITS_ANY_BELIEF)300 if(pkGameReligions->IsPantheonBeliefAvailable(eBelief, ePlayer))301#else302 if(pkGameReligions->IsPantheonBeliefAvailable(eBelief))303#endif304 {305 pkGameReligions->FoundPantheon(ePlayer, eBelief);306 }307 else308 {309 CvGameReligions::NotifyPlayer(ePlayer, CvGameReligions::FOUNDING_BELIEF_IN_USE);310 }311 }312 else313 {314 CvGameReligions::NotifyPlayer(ePlayer, eResult);315 }316 }317 else if (pEntry->IsReformationBelief())318 {319 CvPlayerAI& kPlayer = GET_PLAYER(ePlayer);320 if (!pkGameReligions->HasAddedReformationBelief(ePlayer) && kPlayer.GetReligions()->HasCreatedReligion())321 {322 ReligionTypes eReligion = kPlayer.GetReligions()->GetReligionCreatedByPlayer();323 pkGameReligions->AddReformationBelief(ePlayer, eReligion, eBelief);324 }325 }326 }327}
Calls
- CvBeliefEntry::IsPantheonBelief() const
- CvBeliefEntry::IsReformationBelief() const
- CvBeliefXMLEntries::GetEntry(int)
- CvGame::GetGameReligions()
- CvGameReligions::AddReformationBelief(PlayerTypes, ReligionTypes, BeliefTypes)
- CvGameReligions::CanCreatePantheon(PlayerTypes, bool)
- CvGameReligions::FoundPantheon(PlayerTypes, BeliefTypes)
- CvGameReligions::HasAddedReformationBelief(PlayerTypes) const
- CvGameReligions::IsPantheonBeliefAvailable(BeliefTypes, PlayerTypes)
- CvGameReligions::NotifyPlayer(PlayerTypes, CvGameReligions::FOUNDING_RESULT)
- CvGlobals::getGame()
- CvGlobals::GetGameBeliefs() const
- CvPlayer::GetReligions() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerReligions::GetReligionCreatedByPlayer(bool) const
- CvPlayerReligions::HasCreatedReligion(bool) const