Hooks
static bool BeforeCvDeal_AddDefensivePact(CvDeal* self, PlayerTypes eFrom, int iDuration);static void AfterCvDeal_AddDefensivePact(CvDeal* self, PlayerTypes eFrom, int iDuration);static void ReplaceCvDeal_AddDefensivePact(void (*original)(CvDeal*, PlayerTypes, int), CvDeal* self, PlayerTypes eFrom, int iDuration);CivRegisterBefore<CivHooks::CvDeal_AddDefensivePact>(host, &BeforeCvDeal_AddDefensivePact);CivRegisterAfter<CivHooks::CvDeal_AddDefensivePact>(host, &AfterCvDeal_AddDefensivePact);CivRegisterReplace<CivHooks::CvDeal_AddDefensivePact>(host, &ReplaceCvDeal_AddDefensivePact);
Code
1114/// Insert a defensive pact1115void CvDeal::AddDefensivePact(PlayerTypes eFrom, int iDuration)1116{1117 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.");1118 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.");1119 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.");11201121 if(IsPossibleToTradeItem(eFrom, GetOtherPlayer(eFrom), TRADE_ITEM_DEFENSIVE_PACT, iDuration))1122 {1123 CvTradedItem item;1124 item.m_eItemType = TRADE_ITEM_DEFENSIVE_PACT;1125 item.m_iDuration = iDuration;1126 //item.m_iFinalTurn = iDuration + GC.getGame().getGameTurn();1127 item.m_iFinalTurn = -1;1128 item.m_eFromPlayer = eFrom;1129 m_TradedItems.push_back(item);1130 }1131 else1132 {1133 CvAssertMsg(false, "DEAL: Trying to add an invalid Defensive Pact item to a deal");1134 }1135}