Hooks
static bool BeforeCvGameDeals_FinalizeDeal_with_CvDeal_bool(CvGameDeals* self, CvDeal kDeal, bool bAccepted, bool& result);static void AfterCvGameDeals_FinalizeDeal_with_CvDeal_bool(CvGameDeals* self, CvDeal kDeal, bool bAccepted, bool& result);static bool ReplaceCvGameDeals_FinalizeDeal_with_CvDeal_bool(bool (*original)(CvGameDeals*, CvDeal, bool), CvGameDeals* self, CvDeal kDeal, bool bAccepted);CivRegisterBefore<CivHooks::CvGameDeals_FinalizeDeal_with_CvDeal_bool>(host, &BeforeCvGameDeals_FinalizeDeal_with_CvDeal_bool);CivRegisterAfter<CivHooks::CvGameDeals_FinalizeDeal_with_CvDeal_bool>(host, &AfterCvGameDeals_FinalizeDeal_with_CvDeal_bool);CivRegisterReplace<CivHooks::CvGameDeals_FinalizeDeal_with_CvDeal_bool>(host, &ReplaceCvGameDeals_FinalizeDeal_with_CvDeal_bool);
Code
2095/// Moves a deal from the proposed list to the active one (returns FALSE if deal not valid)2096bool CvGameDeals::FinalizeDeal(CvDeal kDeal, bool bAccepted)2097{2098 PlayerTypes eFromPlayer = kDeal.m_eFromPlayer;2099 PlayerTypes eToPlayer = kDeal.m_eToPlayer;2100 bool bFoundIt = true;2101 bool bValid = kDeal.AreAllTradeItemsValid();2102 CvWeightedVector<TeamTypes, MAX_CIV_TEAMS, true> veNowAtPeacePairs; // hacked CvWeighedVector to keep track of third party minors that this deal makes at peace2103 {2104 if(!bValid || !bAccepted)2105 {2106 LogDealFailed(&kDeal, false, !bAccepted, true);2107 }21082109 if(bValid && bAccepted)2110 {2111 FinalizeDealValidAndAccepted(eFromPlayer, eToPlayer, kDeal, bAccepted, veNowAtPeacePairs);2112 }2113 }2114 2115 FinalizeDealNotify(eFromPlayer, eToPlayer, veNowAtPeacePairs);21162117 return bFoundIt && bValid;2118}