Bazaar developer reference

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