Bazaar developer reference

CvDllNetMessageHandler::ResponseFoundReligion(PlayerTypes, ReligionTypes, const char *, BeliefTypes, BeliefTypes, BeliefTypes, BeliefTypes, int, int)

Defined in
CvDllNetMessageHandler.cpp, line 329
Class
CvDllNetMessageHandler
Hook name
CivHooks::CvDllNetMessageHandler_ResponseFoundReligion

Hooks

static bool BeforeCvDllNetMessageHandler_ResponseFoundReligion(CvDllNetMessageHandler* self, PlayerTypes ePlayer, ReligionTypes eReligion, const char* szCustomName, BeliefTypes eBelief1, BeliefTypes eBelief2, BeliefTypes eBelief3, BeliefTypes eBelief4, int iCityX, int iCityY);static void AfterCvDllNetMessageHandler_ResponseFoundReligion(CvDllNetMessageHandler* self, PlayerTypes ePlayer, ReligionTypes eReligion, const char* szCustomName, BeliefTypes eBelief1, BeliefTypes eBelief2, BeliefTypes eBelief3, BeliefTypes eBelief4, int iCityX, int iCityY);static void ReplaceCvDllNetMessageHandler_ResponseFoundReligion(void (*original)(CvDllNetMessageHandler*, PlayerTypes, ReligionTypes, const char*, BeliefTypes, BeliefTypes, BeliefTypes, BeliefTypes, int, int), CvDllNetMessageHandler* self, PlayerTypes ePlayer, ReligionTypes eReligion, const char* szCustomName, BeliefTypes eBelief1, BeliefTypes eBelief2, BeliefTypes eBelief3, BeliefTypes eBelief4, int iCityX, int iCityY);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseFoundReligion::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponseFoundReligion);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseFoundReligion::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponseFoundReligion);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseFoundReligion::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponseFoundReligion);

Code

329void CvDllNetMessageHandler::ResponseFoundReligion(PlayerTypes ePlayer, ReligionTypes eReligion, const char* szCustomName, BeliefTypes eBelief1, BeliefTypes eBelief2, BeliefTypes eBelief3, BeliefTypes eBelief4, int iCityX, int iCityY)330{331	CvGame& kGame(GC.getGame());332	CvGameReligions* pkGameReligions(kGame.GetGameReligions());333334	CvCity* pkCity = GC.getMap().plot(iCityX, iCityY)->getPlotCity();335	if(pkCity && ePlayer != NO_PLAYER)336	{337		CvGameReligions::FOUNDING_RESULT eResult = pkGameReligions->CanFoundReligion(ePlayer, eReligion, szCustomName, eBelief1, eBelief2, eBelief3, eBelief4, pkCity);338		if(eResult == CvGameReligions::FOUNDING_OK)339			pkGameReligions->FoundReligion(ePlayer, eReligion, szCustomName, eBelief1, eBelief2, eBelief3, eBelief4, pkCity);340		else341		{342			CvGameReligions::NotifyPlayer(ePlayer, eResult);343			// We don't want them to lose the opportunity to found the religion, and the Great Prophet is already gone so just repost the notification344			// If someone beat them to the last religion, well... tough luck.345			CvPlayerAI& kPlayer = GET_PLAYER(ePlayer);346			if(kPlayer.isHuman() && eResult != CvGameReligions::FOUNDING_NO_RELIGIONS_AVAILABLE)347			{348				CvNotifications* pNotifications = kPlayer.GetNotifications();349				if(pNotifications)350				{351					CvString strBuffer = GetLocalizedText("TXT_KEY_NOTIFICATION_FOUND_RELIGION");352					CvString strSummary = GetLocalizedText("TXT_KEY_NOTIFICATION_SUMMARY_FOUND_RELIGION");353#if defined(MOD_API_EXTENSIONS)354					pNotifications->Add(NOTIFICATION_FOUND_RELIGION, strBuffer, strSummary, iCityX, iCityY, eReligion, pkCity->GetID());355#else356					pNotifications->Add(NOTIFICATION_FOUND_RELIGION, strBuffer, strSummary, iCityX, iCityY, -1, pkCity->GetID());357#endif358				}359				kPlayer.GetReligions()->SetFoundingReligion(true);360			}361		}362	}363}

Calls