Bazaar developer reference

CvDeal::GetGoldAvailable(PlayerTypes, TradeableItems)

Defined in
CvDealClasses.cpp, line 272
Class
CvDeal
Hook name
CivHooks::CvDeal_GetGoldAvailable

Hooks

static bool BeforeCvDeal_GetGoldAvailable(CvDeal* self, PlayerTypes ePlayer, TradeableItems eItemToBeChanged, int& result);static void AfterCvDeal_GetGoldAvailable(CvDeal* self, PlayerTypes ePlayer, TradeableItems eItemToBeChanged, int& result);static int ReplaceCvDeal_GetGoldAvailable(int (*original)(CvDeal*, PlayerTypes, TradeableItems), CvDeal* self, PlayerTypes ePlayer, TradeableItems eItemToBeChanged);CivRegisterBefore<CivHooks::CvDeal_GetGoldAvailable>(host, &BeforeCvDeal_GetGoldAvailable);CivRegisterAfter<CivHooks::CvDeal_GetGoldAvailable>(host, &AfterCvDeal_GetGoldAvailable);CivRegisterReplace<CivHooks::CvDeal_GetGoldAvailable>(host, &ReplaceCvDeal_GetGoldAvailable);

Code

271/// How much Gold does ePlayer have available to be used in this Deal?272int CvDeal::GetGoldAvailable(PlayerTypes ePlayer, TradeableItems eItemToBeChanged)273{274	int iGoldAvailable = GET_PLAYER(ePlayer).GetTreasury()->GetGold();275276	// Remove Gold we're sending to the other player in this deal (unless we're changing it)277	if(eItemToBeChanged != TRADE_ITEM_GOLD)278	{279		iGoldAvailable -= GetGoldTrade(ePlayer);280	}281282	int iGoldCost;283284	// Loop through all trade items to see if they have a cost285	TradedItemList::iterator it;286	for(it = m_TradedItems.begin(); it != m_TradedItems.end(); ++it)287	{288		// Don't count something against itself when trying to add it289		if(it->m_eItemType != eItemToBeChanged)290		{291			if(it->m_eFromPlayer == ePlayer)292			{293				iGoldCost = GC.getGame().GetGameDeals()->GetTradeItemGoldCost(it->m_eItemType, m_eFromPlayer, m_eToPlayer);294295				if(iGoldCost != 0)		// Negative cost valid?  Maybe ;-O296				{297					iGoldAvailable -= iGoldCost;298				}299			}300		}301	}302303	return iGoldAvailable;304}

Calls

Called by