Hooks
static bool BeforeCvDeal_AddTradeAgreement(CvDeal* self, PlayerTypes eFrom, int iDuration);static void AfterCvDeal_AddTradeAgreement(CvDeal* self, PlayerTypes eFrom, int iDuration);static void ReplaceCvDeal_AddTradeAgreement(void (*original)(CvDeal*, PlayerTypes, int), CvDeal* self, PlayerTypes eFrom, int iDuration);CivRegisterBefore<CivHooks::CvDeal_AddTradeAgreement>(host, &BeforeCvDeal_AddTradeAgreement);CivRegisterAfter<CivHooks::CvDeal_AddTradeAgreement>(host, &AfterCvDeal_AddTradeAgreement);CivRegisterReplace<CivHooks::CvDeal_AddTradeAgreement>(host, &ReplaceCvDeal_AddTradeAgreement);
Code
1160/// Insert a Trade Agreement1161void CvDeal::AddTradeAgreement(PlayerTypes eFrom, int iDuration)1162{1163 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.");1164 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.");1165 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.");11661167 if(IsPossibleToTradeItem(eFrom, GetOtherPlayer(eFrom), TRADE_ITEM_TRADE_AGREEMENT, iDuration))1168 {1169 CvTradedItem item;1170 item.m_eItemType = TRADE_ITEM_TRADE_AGREEMENT;1171 item.m_iDuration = iDuration;1172 //item.m_iFinalTurn = iDuration + GC.getGame().getGameTurn();1173 item.m_iFinalTurn = -1;1174 item.m_eFromPlayer = eFrom;1175 m_TradedItems.push_back(item);1176 }1177 else1178 {1179 CvAssertMsg(false, "DEAL: Trying to add an invalid Trade Agreement item to a deal");1180 }1181}