Bazaar developer reference

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

Defined in
CvDealAI.cpp, line 2752
Class
CvDealAI
Hook name
CivHooks::CvDealAI_DoAddOpenBordersToThem

Hooks

static bool BeforeCvDealAI_DoAddOpenBordersToThem(CvDealAI* self, CvDeal* pDeal, PlayerTypes eThem, bool bDontChangeTheirExistingItems, int& iTotalValue, int& iValueImOffering, int& iValueTheyreOffering, int iAmountOverWeWillRequest, int iDealDuration, bool bUseEvenValue);static void AfterCvDealAI_DoAddOpenBordersToThem(CvDealAI* self, CvDeal* pDeal, PlayerTypes eThem, bool bDontChangeTheirExistingItems, int& iTotalValue, int& iValueImOffering, int& iValueTheyreOffering, int iAmountOverWeWillRequest, int iDealDuration, bool bUseEvenValue);static void ReplaceCvDealAI_DoAddOpenBordersToThem(void (*original)(CvDealAI*, CvDeal*, PlayerTypes, bool, int&, int&, int&, int, int, bool), CvDealAI* self, CvDeal* pDeal, PlayerTypes eThem, bool bDontChangeTheirExistingItems, int& iTotalValue, int& iValueImOffering, int& iValueTheyreOffering, int iAmountOverWeWillRequest, int iDealDuration, bool bUseEvenValue);CivRegisterBefore<CivHooks::CvDealAI_DoAddOpenBordersToThem>(host, &BeforeCvDealAI_DoAddOpenBordersToThem);CivRegisterAfter<CivHooks::CvDealAI_DoAddOpenBordersToThem>(host, &AfterCvDealAI_DoAddOpenBordersToThem);CivRegisterReplace<CivHooks::CvDealAI_DoAddOpenBordersToThem>(host, &ReplaceCvDealAI_DoAddOpenBordersToThem);

Code

2751/// See if adding Open Borders to their side of the deal helps even out pDeal2752void CvDealAI::DoAddOpenBordersToThem(CvDeal* pDeal, PlayerTypes eThem, bool bDontChangeTheirExistingItems, int& iTotalValue, int& iValueImOffering, int& iValueTheyreOffering, int iAmountOverWeWillRequest, int iDealDuration, bool bUseEvenValue)2753{2754	CvAssert(eThem >= 0);2755	CvAssert(eThem < MAX_MAJOR_CIVS);2756	CvAssertMsg(eThem != GetPlayer()->GetID(), "DEAL_AI: Trying to add Open Borders to Them, but them is us.  Please show Jon");27572758	if(!bDontChangeTheirExistingItems)2759	{2760		if(iTotalValue < 0)2761		{2762			if(!pDeal->IsOpenBordersTrade(eThem))2763			{2764				PlayerTypes eMyPlayer = GetPlayer()->GetID();27652766				// See if they can actually trade it to us2767				if(pDeal->IsPossibleToTradeItem(eThem, eMyPlayer, TRADE_ITEM_OPEN_BORDERS))2768				{2769					int iItemValue = GetTradeItemValue(TRADE_ITEM_OPEN_BORDERS, /*bFromMe*/ false, eThem, -1, -1, -1, /*bFlag1*/false, iDealDuration, bUseEvenValue);27702771					// If adding this to the deal doesn't take it over the limit, do it2772#if defined(MOD_AI_NO_ZERO_VALUE_TRADE_ITEMS)2773					if((iItemValue > 0) && (iItemValue + iTotalValue <= iAmountOverWeWillRequest))2774#else2775					if(iItemValue + iTotalValue <= iAmountOverWeWillRequest)2776#endif2777					{2778						pDeal->AddOpenBorders(eThem, iDealDuration);2779						iTotalValue = GetDealValue(pDeal, iValueImOffering, iValueTheyreOffering, bUseEvenValue);2780					}2781				}2782			}2783		}2784	}2785}

Calls

Called by