Bazaar developer reference

CvDiplomacyRequests::SendDealRequest(PlayerTypes, PlayerTypes, CvDeal *, DiploUIStateTypes, DiploMessageTypes, const char *, LeaderheadAnimationTypes)

Defined in
CvDiplomacyRequests.cpp, line 467
Class
CvDiplomacyRequests
Hook name
CivHooks::CvDiplomacyRequests_SendDealRequest

Hooks

static bool BeforeCvDiplomacyRequests_SendDealRequest(PlayerTypes eFromPlayer, PlayerTypes eToPlayer, CvDeal* pkDeal, DiploUIStateTypes eDiploType, DiploMessageTypes eDiploMessage, const char* pszMessage, LeaderheadAnimationTypes eAnimationType);static void AfterCvDiplomacyRequests_SendDealRequest(PlayerTypes eFromPlayer, PlayerTypes eToPlayer, CvDeal* pkDeal, DiploUIStateTypes eDiploType, DiploMessageTypes eDiploMessage, const char* pszMessage, LeaderheadAnimationTypes eAnimationType);static void ReplaceCvDiplomacyRequests_SendDealRequest(void (*original)(PlayerTypes, PlayerTypes, CvDeal*, DiploUIStateTypes, DiploMessageTypes, const char*, LeaderheadAnimationTypes), PlayerTypes eFromPlayer, PlayerTypes eToPlayer, CvDeal* pkDeal, DiploUIStateTypes eDiploType, DiploMessageTypes eDiploMessage, const char* pszMessage, LeaderheadAnimationTypes eAnimationType);CivRegisterBefore<CivHooks::CvDiplomacyRequests_SendDealRequest>(host, &BeforeCvDiplomacyRequests_SendDealRequest);CivRegisterAfter<CivHooks::CvDiplomacyRequests_SendDealRequest>(host, &AfterCvDiplomacyRequests_SendDealRequest);CivRegisterReplace<CivHooks::CvDiplomacyRequests_SendDealRequest>(host, &ReplaceCvDiplomacyRequests_SendDealRequest);

Code

464//	Request for a deal465//static466#if defined(MOD_API_PLAYER_LOGS)467void CvDiplomacyRequests::SendDealRequest(PlayerTypes eFromPlayer, PlayerTypes eToPlayer, CvDeal* pkDeal, DiploUIStateTypes eDiploType, DiploMessageTypes eDiploMessage, const char* pszMessage, LeaderheadAnimationTypes eAnimationType)468#else469void CvDiplomacyRequests::SendDealRequest(PlayerTypes eFromPlayer, PlayerTypes eToPlayer, CvDeal* pkDeal, DiploUIStateTypes eDiploType, const char* pszMessage, LeaderheadAnimationTypes eAnimationType)470#endif471{472#if defined(MOD_AI_MP_DIPLOMACY)473	if (MOD_AI_MP_DIPLOMACY) {474		CvAssert(eFromPlayer != NO_PLAYER);475		CvAssertMsg(!GET_PLAYER(eFromPlayer).isHuman(), __FUNCTION__ " must not be used by a human player!");476477		if (GC.getGame().isNetworkMultiPlayer() && eToPlayer != GC.getGame().getActivePlayer())478		{479			return;480		}481482		CvPlayer& kTo = GET_PLAYER(eToPlayer);483		CvDiplomacyRequests* pDiploRequests = kTo.GetDiplomacyRequests();484		if (pDiploRequests && pkDeal)485		{486			CvAssert(pkDeal->GetFromPlayer() == eFromPlayer);487			CvAssert(pkDeal->GetToPlayer() == eToPlayer);488			GC.getGame().GetGameDeals()->AddProposedDeal(*pkDeal); // propose the deal (needed for activation...)489#if defined(MOD_API_PLAYER_LOGS)490			pDiploRequests->Add(eFromPlayer, eDiploType, eDiploMessage, pszMessage, eAnimationType, -1);491#else492			pDiploRequests->Add(eFromPlayer, eDiploType, pszMessage, eAnimationType, -1);493#endif494		}495	} else {496#endif497	// Deals must currently happen on the active player's turn...498	if(GC.getGame().getActivePlayer() == eToPlayer)499	{500// CUSTOMLOG("STFU@%i: Deal request from player %i", GC.getGame().getGameTurn(), eFromPlayer);501		auto_ptr<ICvDeal1> pDeal = GC.WrapDealPointer(pkDeal);502		GC.GetEngineUserInterface()->SetScratchDeal(pDeal.get());503#if defined(MOD_API_PLAYER_LOGS)504		SendRequest(eFromPlayer, eToPlayer, eDiploType, eDiploMessage, pszMessage, eAnimationType, -1);505#else506		SendRequest(eFromPlayer, eToPlayer, eDiploType, pszMessage, eAnimationType, -1);507#endif508	}509#if defined(MOD_AI_MP_DIPLOMACY)510	}511#endif512}

Calls

Called by