Bazaar developer reference

CvGameDeals::AddProposedDeal(CvDeal)

Defined in
CvDealClasses.cpp, line 2012
Class
CvGameDeals
Hook name
CivHooks::CvGameDeals_AddProposedDeal

Hooks

static bool BeforeCvGameDeals_AddProposedDeal(CvGameDeals* self, CvDeal kDeal);static void AfterCvGameDeals_AddProposedDeal(CvGameDeals* self, CvDeal kDeal);static void ReplaceCvGameDeals_AddProposedDeal(void (*original)(CvGameDeals*, CvDeal), CvGameDeals* self, CvDeal kDeal);CivRegisterBefore<CivHooks::CvGameDeals_AddProposedDeal>(host, &BeforeCvGameDeals_AddProposedDeal);CivRegisterAfter<CivHooks::CvGameDeals_AddProposedDeal>(host, &AfterCvGameDeals_AddProposedDeal);CivRegisterReplace<CivHooks::CvGameDeals_AddProposedDeal>(host, &ReplaceCvGameDeals_AddProposedDeal);

Code

2011/// Save off a new deal that has been agreed to2012void CvGameDeals::AddProposedDeal(CvDeal kDeal)2013{2014#if defined(MOD_AI_MP_DIPLOMACY)2015	if (MOD_AI_MP_DIPLOMACY) {2016		PlayerTypes eFrom = kDeal.GetFromPlayer();2017		PlayerTypes eTo = kDeal.GetToPlayer();20182019		if (CvPreGame::isHuman(eFrom) && CvPreGame::isHuman(eTo))2020		{2021			// only one deal from Human to Human2022			CvDeal kRemovedDeal;2023			while (RemoveProposedDeal(eFrom, eTo, &kRemovedDeal, true))2024			{//deal from eCancelPlayer2025				FinalizeDeal(kRemovedDeal, false);2026			}2027			while (RemoveProposedDeal(eTo, eFrom, &kRemovedDeal, true))2028			{//deal to eCancelPlayer2029				FinalizeDeal(kRemovedDeal, false);2030			}2031		}2032	}2033#endif20342035	// Store Deal away2036	m_ProposedDeals.push_back(kDeal);20372038	// Update UI if we were involved in the deal2039	PlayerTypes eActivePlayer = GC.getGame().getActivePlayer();2040	if(kDeal.m_eFromPlayer == eActivePlayer || kDeal.m_eToPlayer == eActivePlayer)2041	{2042		GC.GetEngineUserInterface()->setDirty(GameData_DIRTY_BIT, true);2043	}2044}

Calls

Called by