CvGameDeals::AddProposedDeal(CvDeal)
- Defined in
- CvDealClasses.cpp, line 2012
- Class
- CvGameDeals
- Hook name
CivHooks::CvGameDeals_AddProposedDeal
Hooks
static bool BeforeCvGameDeals_AddProposedDeal(CvGameDeals* self, CvDeal kDeal);static void AfterCvGameDeals_AddProposedDeal(CvGameDeals* self, CvDeal kDeal);static void ReplaceCvGameDeals_AddProposedDeal(void (*original)(CvGameDeals*, CvDeal), CvGameDeals* self, CvDeal kDeal);CivRegisterBefore<CivHooks::CvGameDeals_AddProposedDeal>(host, &BeforeCvGameDeals_AddProposedDeal);CivRegisterAfter<CivHooks::CvGameDeals_AddProposedDeal>(host, &AfterCvGameDeals_AddProposedDeal);CivRegisterReplace<CivHooks::CvGameDeals_AddProposedDeal>(host, &ReplaceCvGameDeals_AddProposedDeal);
Code
2011/// Save off a new deal that has been agreed to2012void CvGameDeals::AddProposedDeal(CvDeal kDeal)2013{2014#if defined(MOD_AI_MP_DIPLOMACY)2015 if (MOD_AI_MP_DIPLOMACY) {2016 PlayerTypes eFrom = kDeal.GetFromPlayer();2017 PlayerTypes eTo = kDeal.GetToPlayer();20182019 if (CvPreGame::isHuman(eFrom) && CvPreGame::isHuman(eTo))2020 {2021 // only one deal from Human to Human2022 CvDeal kRemovedDeal;2023 while (RemoveProposedDeal(eFrom, eTo, &kRemovedDeal, true))2024 {//deal from eCancelPlayer2025 FinalizeDeal(kRemovedDeal, false);2026 }2027 while (RemoveProposedDeal(eTo, eFrom, &kRemovedDeal, true))2028 {//deal to eCancelPlayer2029 FinalizeDeal(kRemovedDeal, false);2030 }2031 }2032 }2033#endif20342035 // Store Deal away2036 m_ProposedDeals.push_back(kDeal);20372038 // Update UI if we were involved in the deal2039 PlayerTypes eActivePlayer = GC.getGame().getActivePlayer();2040 if(kDeal.m_eFromPlayer == eActivePlayer || kDeal.m_eToPlayer == eActivePlayer)2041 {2042 GC.GetEngineUserInterface()->setDirty(GameData_DIRTY_BIT, true);2043 }2044}
Calls
- CustomMods::isAI_MP_DIPLOMACY()
- CvDeal::CvDeal()
- CvDeal::CvDeal(const CvDeal &)
- CvDeal::GetFromPlayer() const
- CvDeal::GetToPlayer() const
- CvGame::getActivePlayer() const
- CvGameDeals::FinalizeDeal(CvDeal, bool)
- CvGameDeals::RemoveProposedDeal(PlayerTypes, PlayerTypes, CvDeal *, bool)
- CvGlobals::GetEngineUserInterface()
- CvGlobals::getGame()
- CvPreGame::isHuman(PlayerTypes)
FStaticVector::push_backICvUserInterface1::setDirty
Called by
- CvDealAI::DoAcceptedDeal(PlayerTypes, const CvDeal &, int, int, int)
- CvDealAI::DoAcceptedDemand(PlayerTypes, const CvDeal &)
- CvDiplomacyAI::DoSendStatementToPlayer(PlayerTypes, DiploStatementTypes, int, CvDeal *)
- CvDiplomacyRequests::SendDealRequest(PlayerTypes, PlayerTypes, CvDeal *, DiploUIStateTypes, DiploMessageTypes, const char *, LeaderheadAnimationTypes)
- CvDiplomacyRequests::SendRequest(PlayerTypes, PlayerTypes, DiploUIStateTypes, DiploMessageTypes, const char *, LeaderheadAnimationTypes, int)
- CvDllGameDeals::AddProposedDeal(ICvDeal1 *)