Bazaar developer reference

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

Defined in
CvDllNetMessageHandler.cpp, line 365
Class
CvDllNetMessageHandler
Hook name
CivHooks::CvDllNetMessageHandler_ResponseEnhanceReligion

Hooks

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

Code

365void CvDllNetMessageHandler::ResponseEnhanceReligion(PlayerTypes ePlayer, ReligionTypes eReligion, const char* szCustomName, BeliefTypes eBelief1, BeliefTypes eBelief2, int iCityX, int iCityY)366{367	CvGame& kGame(GC.getGame());368	CvGameReligions* pkGameReligions(kGame.GetGameReligions());369370	CvGameReligions::FOUNDING_RESULT eResult = pkGameReligions->CanEnhanceReligion(ePlayer, eReligion, eBelief1, eBelief2);371	if(eResult == CvGameReligions::FOUNDING_OK)372		pkGameReligions->EnhanceReligion(ePlayer, eReligion, eBelief1, eBelief2);373	else374	{375		CvGameReligions::NotifyPlayer(ePlayer, eResult);376		// We don't want them to lose the opportunity to enhance the religion, and the Great Prophet is already gone so just repost the notification377		CvCity* pkCity = GC.getMap().plot(iCityX, iCityY)->getPlotCity();378		CvPlayerAI& kPlayer = GET_PLAYER(ePlayer);379		if(kPlayer.isHuman() && eResult != CvGameReligions::FOUNDING_NO_RELIGIONS_AVAILABLE && pkCity)380		{381			CvNotifications* pNotifications = kPlayer.GetNotifications();382			if(pNotifications)383			{384				CvString strBuffer = GetLocalizedText("TXT_KEY_NOTIFICATION_ENHANCE_RELIGION");385				CvString strSummary = GetLocalizedText("TXT_KEY_NOTIFICATION_SUMMARY_ENHANCE_RELIGION");386#if defined(MOD_API_EXTENSIONS)387				pNotifications->Add(NOTIFICATION_ENHANCE_RELIGION, strBuffer, strSummary, iCityX, iCityY, eReligion, pkCity->GetID());388#else389				pNotifications->Add(NOTIFICATION_ENHANCE_RELIGION, strBuffer, strSummary, iCityX, iCityY, -1, pkCity->GetID());390#endif391			}392			kPlayer.GetReligions()->SetFoundingReligion(true);393		}394	}395}

Calls