CvLeagueAI::CanCommitVote(PlayerTypes, CvString *)
- Defined in
- CvVotingClasses.cpp, line 7803
- Class
- CvLeagueAI
- Hook name
CivHooks::CvLeagueAI_CanCommitVote
Hooks
static bool BeforeCvLeagueAI_CanCommitVote(CvLeagueAI* self, PlayerTypes eToPlayer, CvString* sTooltipSink, bool& result);static void AfterCvLeagueAI_CanCommitVote(CvLeagueAI* self, PlayerTypes eToPlayer, CvString* sTooltipSink, bool& result);static bool ReplaceCvLeagueAI_CanCommitVote(bool (*original)(CvLeagueAI*, PlayerTypes, CvString*), CvLeagueAI* self, PlayerTypes eToPlayer, CvString* sTooltipSink);CivRegisterBefore<CivHooks::CvLeagueAI_CanCommitVote>(host, &BeforeCvLeagueAI_CanCommitVote);CivRegisterAfter<CivHooks::CvLeagueAI_CanCommitVote>(host, &AfterCvLeagueAI_CanCommitVote);CivRegisterReplace<CivHooks::CvLeagueAI_CanCommitVote>(host, &ReplaceCvLeagueAI_CanCommitVote);
Code
7802// Can someone secure our vote on a certain matter through a deal?7803bool CvLeagueAI::CanCommitVote(PlayerTypes eToPlayer, CvString* sTooltipSink)7804{7805 CvAssertMsg(eToPlayer >= 0, "eToPlayer is expected to be non-negative (invalid Index). Please send Anton your save file and version.");7806 CvAssertMsg(eToPlayer < MAX_MAJOR_CIVS, "eToPlayer is expected to be within maximum bounds (invalid Index). Please send Anton your save file and version.");7807 if (eToPlayer < 0 || eToPlayer >= MAX_MAJOR_CIVS) return false;78087809 bool bCanCommit = true;7810 7811 CvLeague* pLeague = GC.getGame().GetGameLeagues()->GetActiveLeague();7812 if (pLeague == NULL)7813 {7814 bCanCommit = false;7815 if (sTooltipSink != NULL)7816 (*sTooltipSink) += Localization::Lookup("TXT_KEY_DIPLO_VOTE_TRADE_NO_LEAGUE").toUTF8();7817 }7818 else7819 {7820 // League is in session7821 if (pLeague->IsInSession())7822 {7823 bCanCommit = false;7824 if (sTooltipSink != NULL)7825 {7826 (*sTooltipSink) += Localization::Lookup("TXT_KEY_DIPLO_VOTE_TRADE_IN_SESSION").toUTF8();7827 }7828 }78297830 // They don't have a diplomat in our capital7831 if (!DEBUG_LEAGUES)7832 {7833 if (!GetPlayer()->GetEspionage()->IsOtherDiplomatVisitingMe(eToPlayer))7834 {7835 bCanCommit = false;7836 if (sTooltipSink != NULL)7837 {7838 if (GC.getGame().getActivePlayer() == GetPlayer()->GetID())7839 {7840 (*sTooltipSink) += Localization::Lookup("TXT_KEY_DIPLO_VOTE_TRADE_NO_SPY_ACTIVE_PLAYER").toUTF8();7841 }7842 else7843 {7844 (*sTooltipSink) += Localization::Lookup("TXT_KEY_DIPLO_VOTE_TRADE_NO_SPY").toUTF8();7845 }7846 }7847 }7848 }78497850 // Not a member7851 if (!pLeague->IsMember(GetPlayer()->GetID()))7852 {7853 bCanCommit = false;7854 if (sTooltipSink != NULL)7855 (*sTooltipSink) += Localization::Lookup("TXT_KEY_DIPLO_VOTE_TRADE_NOT_MEMBER").toUTF8();7856 }78577858 // Not allowed to vote7859 if (!pLeague->CanEverVote(GetPlayer()->GetID()))7860 {7861 bCanCommit = false;7862 }78637864 // No proposals made yet7865 if (!pLeague->IsAnythingProposed())7866 {7867 bCanCommit = false;7868 if (sTooltipSink != NULL)7869 (*sTooltipSink) += Localization::Lookup("TXT_KEY_DIPLO_VOTE_TRADE_NO_PROPOSALS").toUTF8();7870 }78717872 // We already committed our votes7873 if (HasVoteCommitment())7874 {7875 bCanCommit = false;7876 if (sTooltipSink != NULL)7877 (*sTooltipSink) += Localization::Lookup("TXT_KEY_DIPLO_VOTE_TRADE_ALREADY_COMMITTED").toUTF8();7878 }78797880 // The league is in session, and we already used our votes7881 if (pLeague->IsInSession() && pLeague->GetRemainingVotesForMember(GetPlayer()->GetID()) < pLeague->GetCoreVotesForMember(GetPlayer()->GetID()))7882 {7883 bCanCommit = false;7884 if (sTooltipSink != NULL)7885 (*sTooltipSink) += Localization::Lookup("TXT_KEY_DIPLO_VOTE_TRADE_ALREADY_USED_VOTES").toUTF8();7886 }7887 }78887889 return bCanCommit;7890}
Calls
- CvGame::getActivePlayer() const
- CvGame::GetGameLeagues()
- CvGameLeagues::GetActiveLeague()
- CvGlobals::getGame()
- CvLeague::CanEverVote(PlayerTypes)
- CvLeague::GetCoreVotesForMember(PlayerTypes)
- CvLeague::GetRemainingVotesForMember(PlayerTypes)
- CvLeague::IsAnythingProposed()
- CvLeague::IsInSession()
- CvLeague::IsMember(PlayerTypes) const
- CvLeagueAI::GetPlayer()
- CvLeagueAI::HasVoteCommitment() const
- CvPlayer::GetEspionage() const
- CvPlayer::GetID() const
- CvPlayerEspionage::IsOtherDiplomatVisitingMe(PlayerTypes)
Localization::LookupLocalization::String::toUTF8std::basic_string::operator+=