Bazaar developer reference

CvGameDeals::GetHistoricDeal(PlayerTypes, uint)

Defined in
CvDealClasses.cpp, line 4017
Class
CvGameDeals
Hook name
CivHooks::CvGameDeals_GetHistoricDeal

Hooks

static bool BeforeCvGameDeals_GetHistoricDeal(CvGameDeals* self, PlayerTypes ePlayer, uint index, CvDeal*& result);static void AfterCvGameDeals_GetHistoricDeal(CvGameDeals* self, PlayerTypes ePlayer, uint index, CvDeal*& result);static CvDeal* ReplaceCvGameDeals_GetHistoricDeal(CvDeal* (*original)(CvGameDeals*, PlayerTypes, uint), CvGameDeals* self, PlayerTypes ePlayer, uint index);CivRegisterBefore<CivHooks::CvGameDeals_GetHistoricDeal>(host, &BeforeCvGameDeals_GetHistoricDeal);CivRegisterAfter<CivHooks::CvGameDeals_GetHistoricDeal>(host, &AfterCvGameDeals_GetHistoricDeal);CivRegisterReplace<CivHooks::CvGameDeals_GetHistoricDeal>(host, &ReplaceCvGameDeals_GetHistoricDeal);

Code

4017CvDeal* CvGameDeals::GetHistoricDeal(PlayerTypes ePlayer, uint index)4018{4019#if defined(MOD_AI_MP_DIPLOMACY)4020	if (MOD_AI_MP_DIPLOMACY) {4021		//iterate backwards, usually the latest deals are most interesting4022		uint iCount = 0;4023		for (int i = m_HistoricalDeals.size() - 1; i >= 0; --i)4024		{4025			CvDeal& kDeal = m_HistoricalDeals[i];4026			if((kDeal.m_eToPlayer == ePlayer || kDeal.m_eFromPlayer == ePlayer) && (iCount++ == index))4027			{4028				return &kDeal;4029			}4030		}4031	} else {4032#endif4033	DealList::iterator iter;4034	DealList::iterator end = m_HistoricalDeals.end();40354036	uint iCount = 0;4037	for(iter = m_HistoricalDeals.begin(); iter != end; ++iter)4038	{4039		if((iter->m_eToPlayer == ePlayer ||4040		        iter->m_eFromPlayer == ePlayer) &&4041		        (iCount++ == index))4042		{4043			return &(*iter);4044		}4045	}4046#if defined(MOD_AI_MP_DIPLOMACY)4047	}4048#endif40494050	return NULL;4051}

Calls

Called by