Hooks
static bool BeforeCvDeal_AddThirdPartyPeace(CvDeal* self, PlayerTypes eFrom, TeamTypes eThirdPartyTeam, int iDuration);static void AfterCvDeal_AddThirdPartyPeace(CvDeal* self, PlayerTypes eFrom, TeamTypes eThirdPartyTeam, int iDuration);static void ReplaceCvDeal_AddThirdPartyPeace(void (*original)(CvDeal*, PlayerTypes, TeamTypes, int), CvDeal* self, PlayerTypes eFrom, TeamTypes eThirdPartyTeam, int iDuration);CivRegisterBefore<CivHooks::CvDeal_AddThirdPartyPeace>(host, &BeforeCvDeal_AddThirdPartyPeace);CivRegisterAfter<CivHooks::CvDeal_AddThirdPartyPeace>(host, &AfterCvDeal_AddThirdPartyPeace);CivRegisterReplace<CivHooks::CvDeal_AddThirdPartyPeace>(host, &ReplaceCvDeal_AddThirdPartyPeace);
Code
1257/// Insert going to peace with a third party1258void CvDeal::AddThirdPartyPeace(PlayerTypes eFrom, TeamTypes eThirdPartyTeam, int iDuration)1259{1260 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.");12611262 if(IsPossibleToTradeItem(eFrom, GetOtherPlayer(eFrom), TRADE_ITEM_THIRD_PARTY_PEACE, eThirdPartyTeam))1263 {1264 CvTradedItem item;1265 item.m_eItemType = TRADE_ITEM_THIRD_PARTY_PEACE;1266 item.m_iDuration = iDuration;1267 item.m_iFinalTurn = -1;1268 item.m_iData1 = eThirdPartyTeam;1269 item.m_eFromPlayer = eFrom;1270 m_TradedItems.push_back(item);1271 }1272 else1273 {1274 CvAssertMsg(false, "DEAL: Trying to add an invalid Third Party Peace item to a deal");1275 }1276}