Bazaar developer reference

CvDllNetMessageHandler::ResponsePlayerDealFinalized(PlayerTypes, PlayerTypes, PlayerTypes, bool)

Defined in
CvDllNetMessageHandler.cpp, line 652
Class
CvDllNetMessageHandler
Hook name
CivHooks::CvDllNetMessageHandler_ResponsePlayerDealFinalized

Hand-placed hooks inside

A replacement for this function that does not call original stops these hooks from running.

Hooks

static bool BeforeCvDllNetMessageHandler_ResponsePlayerDealFinalized(CvDllNetMessageHandler* self, PlayerTypes eFromPlayer, PlayerTypes eToPlayer, PlayerTypes eActBy, bool bAccepted);static void AfterCvDllNetMessageHandler_ResponsePlayerDealFinalized(CvDllNetMessageHandler* self, PlayerTypes eFromPlayer, PlayerTypes eToPlayer, PlayerTypes eActBy, bool bAccepted);static void ReplaceCvDllNetMessageHandler_ResponsePlayerDealFinalized(void (*original)(CvDllNetMessageHandler*, PlayerTypes, PlayerTypes, PlayerTypes, bool), CvDllNetMessageHandler* self, PlayerTypes eFromPlayer, PlayerTypes eToPlayer, PlayerTypes eActBy, bool bAccepted);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponsePlayerDealFinalized::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponsePlayerDealFinalized);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponsePlayerDealFinalized::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponsePlayerDealFinalized);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponsePlayerDealFinalized::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponsePlayerDealFinalized);

Code

652void CvDllNetMessageHandler::ResponsePlayerDealFinalized(PlayerTypes eFromPlayer, PlayerTypes eToPlayer, PlayerTypes eActBy, bool bAccepted)653{654	CvGame& game = GC.getGame();655	PlayerTypes eActivePlayer = game.getActivePlayer();656657	// is the deal valid?658#if defined(MOD_AI_MP_DIPLOMACY)659	const bool bFinalized = game.GetGameDeals()->FinalizeDeal(eFromPlayer, eToPlayer, bAccepted, true);660#else661	const bool bFinalized = game.GetGameDeals()->FinalizeDeal(eFromPlayer, eToPlayer, bAccepted);662#endif663#if defined(CIV_HOST_API)664	CivHandDealResolved(eFromPlayer, eToPlayer, eActBy, bAccepted, bFinalized);hand-placed hook: DealResolved665#endif666	if(!bFinalized)667	{668		Localization::String strMessage;669		Localization::String strSummary = Localization::Lookup("TXT_KEY_DEAL_EXPIRED");670671		CvPlayerAI& kToPlayer = GET_PLAYER(eToPlayer);672		CvPlayerAI& kFromPlayer = GET_PLAYER(eFromPlayer);673		CvPlayerAI& kActivePlayer = GET_PLAYER(eActivePlayer);674675		strMessage = Localization::Lookup("TXT_KEY_DEAL_EXPIRED_FROM_YOU");676		strMessage << kToPlayer.getNickName();677		kFromPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eToPlayer, -1, -1);678679		strMessage = Localization::Lookup("TXT_KEY_DEAL_EXPIRED_FROM_THEM");680		strMessage << kFromPlayer.getNickName();681		kToPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eFromPlayer, -1, -1);682	}683	else684	{685		CvPlayerAI& kToPlayer = GET_PLAYER(eToPlayer);686		CvPlayerAI& kFromPlayer = GET_PLAYER(eFromPlayer);687		if(bAccepted)688		{689			Localization::String strSummary = Localization::Lookup("TXT_KEY_DEAL_ACCEPTED");690			Localization::String strMessage = Localization::Lookup("TXT_KEY_DEAL_ACCEPTED_BY_THEM");691			strMessage << kToPlayer.getNickName();692			kFromPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eToPlayer, -1, -1);693694			strSummary = Localization::Lookup("TXT_KEY_DEAL_ACCEPTED");695			strMessage = Localization::Lookup("TXT_KEY_DEAL_ACCEPTED_BY_YOU");696			strMessage << kFromPlayer.getNickName();697			kToPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eFromPlayer, -1, -1);698		}699		else700		{701			if(eActBy == eFromPlayer)702			{703				Localization::String strSummary = Localization::Lookup("TXT_KEY_DEAL_WITHDRAWN");704				Localization::String strMessage = Localization::Lookup("TXT_KEY_DEAL_WITHDRAWN_BY_YOU");705				strMessage << kToPlayer.getNickName();706				kFromPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eToPlayer, -1, -1);707708				strSummary = Localization::Lookup("TXT_KEY_DEAL_WITHDRAWN");709				strMessage = Localization::Lookup("TXT_KEY_DEAL_WITHDRAWN_BY_THEM");710				strMessage << kFromPlayer.getNickName();711				kToPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eFromPlayer, -1, -1);712			}713			else714			{715				Localization::String strSummary = Localization::Lookup("TXT_KEY_DEAL_REJECTED");716				Localization::String strMessage = Localization::Lookup("TXT_KEY_DEAL_REJECTED_BY_THEM");717				strMessage << kToPlayer.getNickName();718				kFromPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eToPlayer, -1, -1);719720				strSummary = Localization::Lookup("TXT_KEY_DEAL_REJECTED");721				strMessage = Localization::Lookup("TXT_KEY_DEAL_REJECTED_BY_YOU");722				strMessage << kFromPlayer.getNickName();723				kToPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eFromPlayer, -1, -1);724			}725		}726	}727}

Calls