Hooks
static bool BeforeCvDeal_ChangeGoldPerTurnTrade(CvDeal* self, PlayerTypes eFrom, int iNewAmount, int iDuration, bool& result);static void AfterCvDeal_ChangeGoldPerTurnTrade(CvDeal* self, PlayerTypes eFrom, int iNewAmount, int iDuration, bool& result);static bool ReplaceCvDeal_ChangeGoldPerTurnTrade(bool (*original)(CvDeal*, PlayerTypes, int, int), CvDeal* self, PlayerTypes eFrom, int iNewAmount, int iDuration);CivRegisterBefore<CivHooks::CvDeal_ChangeGoldPerTurnTrade>(host, &BeforeCvDeal_ChangeGoldPerTurnTrade);CivRegisterAfter<CivHooks::CvDeal_ChangeGoldPerTurnTrade>(host, &AfterCvDeal_ChangeGoldPerTurnTrade);CivRegisterReplace<CivHooks::CvDeal_ChangeGoldPerTurnTrade>(host, &ReplaceCvDeal_ChangeGoldPerTurnTrade);
Code
1422bool CvDeal::ChangeGoldPerTurnTrade(PlayerTypes eFrom, int iNewAmount, int iDuration)1423{1424 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.");1425 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.");1426 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.");14271428 TradedItemList::iterator it;1429 for(it = m_TradedItems.begin(); it != m_TradedItems.end(); ++it)1430 {1431 if(it->m_eItemType == TRADE_ITEM_GOLD_PER_TURN && it->m_eFromPlayer == eFrom)1432 {1433 if(IsPossibleToTradeItem(eFrom, GetOtherPlayer(eFrom), TRADE_ITEM_GOLD_PER_TURN, iNewAmount, iDuration))1434 {1435 it->m_iData1 = iNewAmount;1436 it->m_iDuration = iDuration;1437 it->m_iFinalTurn = iDuration + GC.getGame().getGameTurn();1438 return true;1439 }1440 }1441 }1442 return false;1443}