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
- CvDeal::GetGoldTrade(PlayerTypes)
- CvGame::GetGameDeals()
- CvGameDeals::GetTradeItemGoldCost(TradeableItems, PlayerTypes, PlayerTypes) const
- CvGlobals::getGame()
- CvPlayer::GetTreasury() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvTreasury::GetGold() const
FCustomList_Core::base_iterator::operator++FFastList::iterator::iteratorFFastList::iterator::operator->
Called by
- CvDealAI::DoAddGoldToThem(CvDeal *, PlayerTypes, bool, int &, int &, int &, bool)
- CvDealAI::DoAddGoldToUs(CvDeal *, PlayerTypes, bool, int &, int &, int &, bool)
- CvDealAI::DoAddItemsToDealForPeaceTreaty(PlayerTypes, CvDeal *, PeaceTreatyTypes, bool)
- CvDealAI::IsMakeDemand(PlayerTypes, CvDeal *)
- CvDeal::IsPossibleToTradeItem(PlayerTypes, PlayerTypes, TradeableItems, int, int, int, bool, bool, bool)
- CvLuaDeal::lGetGoldAvailable(lua_State *)