Bazaar developer reference

CvDeal::ChangeResourceTrade(PlayerTypes, ResourceTypes, int, int)

Defined in
CvDealClasses.cpp, line 1460
Class
CvDeal
Hook name
CivHooks::CvDeal_ChangeResourceTrade

Hooks

static bool BeforeCvDeal_ChangeResourceTrade(CvDeal* self, PlayerTypes eFrom, ResourceTypes eResource, int iAmount, int iDuration, bool& result);static void AfterCvDeal_ChangeResourceTrade(CvDeal* self, PlayerTypes eFrom, ResourceTypes eResource, int iAmount, int iDuration, bool& result);static bool ReplaceCvDeal_ChangeResourceTrade(bool (*original)(CvDeal*, PlayerTypes, ResourceTypes, int, int), CvDeal* self, PlayerTypes eFrom, ResourceTypes eResource, int iAmount, int iDuration);CivRegisterBefore<CivHooks::CvDeal_ChangeResourceTrade>(host, &BeforeCvDeal_ChangeResourceTrade);CivRegisterAfter<CivHooks::CvDeal_ChangeResourceTrade>(host, &AfterCvDeal_ChangeResourceTrade);CivRegisterReplace<CivHooks::CvDeal_ChangeResourceTrade>(host, &ReplaceCvDeal_ChangeResourceTrade);

Code

1460bool CvDeal::ChangeResourceTrade(PlayerTypes eFrom, ResourceTypes eResource, int iAmount, int iDuration)1461{1462	CvAssertMsg(iDuration >= 0, "DEAL: Trying to add a negative duration to a TradeItem.  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");1463	CvAssertMsg(iDuration < GC.getGame().getEstimateEndTurn() * 2, "DEAL: Trade item has a crazy long duration (probably invalid).  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");1464	CvAssertMsg(eFrom == m_eFromPlayer || eFrom == m_eToPlayer, "DEAL: Changing deal item for a player that's not actually in this deal!  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");14651466	TradedItemList::iterator it;1467	for(it = m_TradedItems.begin(); it != m_TradedItems.end(); ++it)1468	{1469		if(it->m_eItemType == TRADE_ITEM_RESOURCES &&1470		        it->m_eFromPlayer == eFrom &&1471		        (ResourceTypes)it->m_iData1 == eResource)1472		{1473			if(IsPossibleToTradeItem(eFrom, GetOtherPlayer(eFrom), TRADE_ITEM_RESOURCES, eResource, iAmount))1474			{1475				it->m_iData2 = iAmount;1476				it->m_iDuration = iDuration;1477				it->m_iFinalTurn = iDuration + GC.getGame().getGameTurn();1478				return true;1479			}1480		}1481	}1482	return false;1483}

Calls

Called by