Bazaar developer reference

CvDealAI::DoAddOpenBordersToUs(CvDeal *, PlayerTypes, bool, int &, int &, int &, int, int, bool)

Defined in
CvDealAI.cpp, line 2788
Class
CvDealAI
Hook name
CivHooks::CvDealAI_DoAddOpenBordersToUs

Hooks

static bool BeforeCvDealAI_DoAddOpenBordersToUs(CvDealAI* self, CvDeal* pDeal, PlayerTypes eThem, bool bDontChangeMyExistingItems, int& iTotalValue, int& iValueImOffering, int& iValueTheyreOffering, int iAmountUnderWeWillOffer, int iDealDuration, bool bUseEvenValue);static void AfterCvDealAI_DoAddOpenBordersToUs(CvDealAI* self, CvDeal* pDeal, PlayerTypes eThem, bool bDontChangeMyExistingItems, int& iTotalValue, int& iValueImOffering, int& iValueTheyreOffering, int iAmountUnderWeWillOffer, int iDealDuration, bool bUseEvenValue);static void ReplaceCvDealAI_DoAddOpenBordersToUs(void (*original)(CvDealAI*, CvDeal*, PlayerTypes, bool, int&, int&, int&, int, int, bool), CvDealAI* self, CvDeal* pDeal, PlayerTypes eThem, bool bDontChangeMyExistingItems, int& iTotalValue, int& iValueImOffering, int& iValueTheyreOffering, int iAmountUnderWeWillOffer, int iDealDuration, bool bUseEvenValue);CivRegisterBefore<CivHooks::CvDealAI_DoAddOpenBordersToUs>(host, &BeforeCvDealAI_DoAddOpenBordersToUs);CivRegisterAfter<CivHooks::CvDealAI_DoAddOpenBordersToUs>(host, &AfterCvDealAI_DoAddOpenBordersToUs);CivRegisterReplace<CivHooks::CvDealAI_DoAddOpenBordersToUs>(host, &ReplaceCvDealAI_DoAddOpenBordersToUs);

Code

2787/// See if adding Open Borders to our side of the deal helps even out pDeal2788void CvDealAI::DoAddOpenBordersToUs(CvDeal* pDeal, PlayerTypes eThem, bool bDontChangeMyExistingItems, int& iTotalValue, int& iValueImOffering, int& iValueTheyreOffering, int iAmountUnderWeWillOffer, int iDealDuration, bool bUseEvenValue)2789{2790	CvAssert(eThem >= 0);2791	CvAssert(eThem < MAX_MAJOR_CIVS);2792	CvAssertMsg(eThem != GetPlayer()->GetID(), "DEAL_AI: Trying to add Open Borders to Us, but them is us.  Please show Jon");27932794	if(!bDontChangeMyExistingItems)2795	{2796		if(iTotalValue > 0)2797		{2798			PlayerTypes eMyPlayer = GetPlayer()->GetID();27992800			if(!pDeal->IsOpenBordersTrade(eMyPlayer))2801			{2802				// See if we can actually trade it to them2803				if(pDeal->IsPossibleToTradeItem(eMyPlayer, eThem, TRADE_ITEM_OPEN_BORDERS))2804				{2805					int iItemValue = GetTradeItemValue(TRADE_ITEM_OPEN_BORDERS, /*bFromMe*/ true, eThem, -1, -1, -1, /*bFlag1*/false, iDealDuration, bUseEvenValue);28062807					// If adding this to the deal doesn't take it under the min limit, do it2808#if defined(MOD_AI_NO_ZERO_VALUE_TRADE_ITEMS)2809					if((iItemValue > 0) && (-iItemValue + iTotalValue >= iAmountUnderWeWillOffer))2810#else2811					if(-iItemValue + iTotalValue >= iAmountUnderWeWillOffer)2812#endif2813					{2814						pDeal->AddOpenBorders(eMyPlayer, iDealDuration);2815						iTotalValue = GetDealValue(pDeal, iValueImOffering, iValueTheyreOffering, bUseEvenValue);2816					}2817				}2818			}2819		}2820	}2821}

Calls

Called by