Hooks
static bool BeforeCvDeal_AddGoldPerTurnTrade(CvDeal* self, PlayerTypes eFrom, int iAmount, int iDuration);static void AfterCvDeal_AddGoldPerTurnTrade(CvDeal* self, PlayerTypes eFrom, int iAmount, int iDuration);static void ReplaceCvDeal_AddGoldPerTurnTrade(void (*original)(CvDeal*, PlayerTypes, int, int), CvDeal* self, PlayerTypes eFrom, int iAmount, int iDuration);CivRegisterBefore<CivHooks::CvDeal_AddGoldPerTurnTrade>(host, &BeforeCvDeal_AddGoldPerTurnTrade);CivRegisterAfter<CivHooks::CvDeal_AddGoldPerTurnTrade>(host, &AfterCvDeal_AddGoldPerTurnTrade);CivRegisterReplace<CivHooks::CvDeal_AddGoldPerTurnTrade>(host, &ReplaceCvDeal_AddGoldPerTurnTrade);
Code
953/// Insert a gold per turn trade954void CvDeal::AddGoldPerTurnTrade(PlayerTypes eFrom, int iAmount, int iDuration)955{956 CvAssertMsg(iAmount >= 0, "DEAL: Trying to add a negative amount of GPT to a deal. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");957 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.");958 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.");959 CvAssertMsg(eFrom == m_eFromPlayer || eFrom == m_eToPlayer, "DEAL: Adding 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.");960961 if(IsPossibleToTradeItem(eFrom, GetOtherPlayer(eFrom), TRADE_ITEM_GOLD_PER_TURN, iAmount, iDuration))962 {963 CvTradedItem item;964 item.m_eItemType = TRADE_ITEM_GOLD_PER_TURN;965 item.m_iDuration = iDuration;966 //item.m_iFinalTurn = iDuration + GC.getGame().getGameTurn();967 item.m_iFinalTurn = -1;968 item.m_iData1 = iAmount;969 item.m_eFromPlayer = eFrom;970 m_TradedItems.push_back(item);971 }972 else973 {974 CvAssertMsg(false, "DEAL: Trying to add an invalid GPT amount to a deal");975 }976}