CvDeal::ChangeGoldTrade(PlayerTypes, int)
- Defined in
- CvDealClasses.cpp, line 1379
- Class
- CvDeal
- Hook name
CivHooks::CvDeal_ChangeGoldTrade
Hooks
static bool BeforeCvDeal_ChangeGoldTrade(CvDeal* self, PlayerTypes eFrom, int iNewAmount, bool& result);static void AfterCvDeal_ChangeGoldTrade(CvDeal* self, PlayerTypes eFrom, int iNewAmount, bool& result);static bool ReplaceCvDeal_ChangeGoldTrade(bool (*original)(CvDeal*, PlayerTypes, int), CvDeal* self, PlayerTypes eFrom, int iNewAmount);CivRegisterBefore<CivHooks::CvDeal_ChangeGoldTrade>(host, &BeforeCvDeal_ChangeGoldTrade);CivRegisterAfter<CivHooks::CvDeal_ChangeGoldTrade>(host, &AfterCvDeal_ChangeGoldTrade);CivRegisterReplace<CivHooks::CvDeal_ChangeGoldTrade>(host, &ReplaceCvDeal_ChangeGoldTrade);
Code
1379bool CvDeal::ChangeGoldTrade(PlayerTypes eFrom, int iNewAmount)1380{1381 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.");13821383 int iOldValue;13841385 TradedItemList::iterator it;1386 for(it = m_TradedItems.begin(); it != m_TradedItems.end(); ++it)1387 {1388 if(it->m_eItemType == TRADE_ITEM_GOLD && it->m_eFromPlayer == eFrom)1389 {1390 // Reduce Gold value to 0 first, because otherwise IsPossibleToTradeItem will think we're trying to spend more than we have1391 iOldValue = it->m_iData1;1392 it->m_iData1 = 0;13931394 if(IsPossibleToTradeItem(eFrom, GetOtherPlayer(eFrom), TRADE_ITEM_GOLD, iNewAmount))1395 {1396 it->m_iData1 = iNewAmount;1397 return true;1398 }1399 // If we can't do this then restore the previous Gold quantity1400 else1401 {1402 it->m_iData1 = iOldValue;1403 }1404 }1405 }1406 return false;1407}
Calls
- CvDeal::GetOtherPlayer(PlayerTypes) const
- CvDeal::IsPossibleToTradeItem(PlayerTypes, PlayerTypes, TradeableItems, int, int, int, bool, bool, bool)
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::DoRemoveGoldFromThem(CvDeal *, PlayerTypes, int &, int &, int &, bool)
- CvDealAI::DoRemoveGoldFromUs(CvDeal *, PlayerTypes, int &, int &, int &, bool)
- CvLuaDeal::lChangeGoldTrade(lua_State *)