CvLeague::GetChoicesForDecision(ResolutionDecisionTypes, PlayerTypes)
- Defined in
- CvVotingClasses.cpp, line 2891
- Class
- CvLeague
- Hook name
CivHooks::CvLeague_GetChoicesForDecision
Hooks
static bool BeforeCvLeague_GetChoicesForDecision(CvLeague* self, ResolutionDecisionTypes eDecision, PlayerTypes eDecider, std::vector<int>& result);static void AfterCvLeague_GetChoicesForDecision(CvLeague* self, ResolutionDecisionTypes eDecision, PlayerTypes eDecider, std::vector<int>& result);static std::vector<int> ReplaceCvLeague_GetChoicesForDecision(std::vector<int> (*original)(CvLeague*, ResolutionDecisionTypes, PlayerTypes), CvLeague* self, ResolutionDecisionTypes eDecision, PlayerTypes eDecider);CivRegisterBefore<CivHooks::CvLeague_GetChoicesForDecision>(host, &BeforeCvLeague_GetChoicesForDecision);CivRegisterAfter<CivHooks::CvLeague_GetChoicesForDecision>(host, &AfterCvLeague_GetChoicesForDecision);CivRegisterReplace<CivHooks::CvLeague_GetChoicesForDecision>(host, &ReplaceCvLeague_GetChoicesForDecision);
Code
2891std::vector<int> CvLeague::GetChoicesForDecision(ResolutionDecisionTypes eDecision, PlayerTypes eDecider)2892{2893 std::vector<int> vChoices;2894 switch(eDecision)2895 {2896 case RESOLUTION_DECISION_NONE:2897 break;2898 case RESOLUTION_DECISION_YES_OR_NO:2899 case RESOLUTION_DECISION_REPEAL:2900 vChoices.push_back(LeagueHelpers::CHOICE_YES);2901 vChoices.push_back(LeagueHelpers::CHOICE_NO);2902 break;2903 case RESOLUTION_DECISION_ANY_MEMBER:2904 for (uint i = 0; i < m_vMembers.size(); i++)2905 {2906 vChoices.push_back(m_vMembers[i].ePlayer);2907 }2908 break;2909 case RESOLUTION_DECISION_CITY:2910 break;2911 case RESOLUTION_DECISION_ANY_LUXURY_RESOURCE:2912 for (int i = 0; i < GC.getNumResourceInfos(); i++)2913 {2914 CvResourceInfo* pInfo = GC.getResourceInfo((ResourceTypes)i);2915 if (pInfo && pInfo->getResourceUsage() == RESOURCEUSAGE_LUXURY)2916 {2917 if (GC.getMap().getNumResources((ResourceTypes)i) > 0)2918 {2919 vChoices.push_back(i);2920 }2921 }2922 }2923 break;2924 case RESOLUTION_DECISION_MAJOR_CIV_MEMBER:2925 for (uint i = 0; i < m_vMembers.size(); i++)2926 {2927 if (!GET_PLAYER(m_vMembers[i].ePlayer).isMinorCiv())2928 {2929 vChoices.push_back(m_vMembers[i].ePlayer);2930 }2931 }2932 break;2933 case RESOLUTION_DECISION_OTHER_MAJOR_CIV_MEMBER:2934 for (uint i = 0; i < m_vMembers.size(); i++)2935 {2936 if (m_vMembers[i].ePlayer != eDecider && !GET_PLAYER(m_vMembers[i].ePlayer).isMinorCiv())2937 {2938 vChoices.push_back(m_vMembers[i].ePlayer);2939 }2940 }2941 break;2942 case RESOLUTION_DECISION_RELIGION:2943 for (uint i = 0; i < MAX_MAJOR_CIVS; i++)2944 {2945 PlayerTypes e = (PlayerTypes) i;2946#if defined(MOD_RELIGION_LOCAL_RELIGIONS)2947 if (GET_PLAYER(e).isAlive() && GET_PLAYER(e).GetReligions()->HasCreatedReligion(true))2948#else2949 if (GET_PLAYER(e).isAlive() && GET_PLAYER(e).GetReligions()->HasCreatedReligion())2950#endif2951 {2952 vChoices.push_back(GET_PLAYER(e).GetReligions()->GetReligionCreatedByPlayer());2953 }2954 }2955 break;2956 case RESOLUTION_DECISION_IDEOLOGY:2957 for (int i = 0; i < GC.getNumPolicyBranchInfos(); i++)2958 {2959 CvPolicyBranchEntry* pInfo = GC.getPolicyBranchInfo((PolicyBranchTypes)i);2960 if (pInfo != NULL)2961 {2962 if (pInfo->IsPurchaseByLevel())2963 {2964 vChoices.push_back(pInfo->GetID());2965 }2966 }2967 }2968 break;2969 default:2970 break;2971 }2972 return vChoices;2973}
Calls
BaseVector::operator[]BaseVector::size- CvBaseInfo::GetID() const
- CvGlobals::getMap()
- CvGlobals::getNumPolicyBranchInfos()
- CvGlobals::getNumResourceInfos()
- CvGlobals::getPolicyBranchInfo(PolicyBranchTypes)
- CvGlobals::getResourceInfo(ResourceTypes)
- CvMap::getNumResources(ResourceTypes)
- CvPlayer::GetReligions() const
- CvPlayer::isAlive() const
- CvPlayer::isMinorCiv() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerReligions::GetReligionCreatedByPlayer(bool) const
- CvPlayerReligions::HasCreatedReligion(bool) const
- CvPolicyBranchEntry::IsPurchaseByLevel() const
- CvResourceInfo::getResourceUsage() const
std::vector::push_backstd::vector::vectorstd::vector::vector
Called by
- CvLeague::CanProposeEnact(ResolutionTypes, PlayerTypes, int, CvString *)
- CvLeague::CanProposeEnactAnyChoice(ResolutionTypes, PlayerTypes)
- CvLeague::GetMemberVoteOpinionDetails(PlayerTypes, PlayerTypes)
- CvLeague::GetResolutionVoteOpinionDetails(ResolutionTypes, PlayerTypes, int)
- CvLeagueAI::AllocateProposals(CvLeague *)
- CvLeagueAI::EvaluateVoteForOtherPlayerKnowledge(CvLeague *, PlayerTypes, CvEnactProposal *, CvString *)
- CvLeagueAI::EvaluateVoteForOtherPlayerKnowledge(CvLeague *, PlayerTypes, CvRepealProposal *, CvString *)
- CvLeagueAI::FindBestVoteChoices(CvEnactProposal *, VoteConsiderationList &)
- CvLeagueAI::FindBestVoteChoices(CvRepealProposal *, VoteConsiderationList &)
- CvLeagueAI::GetDesiredVoteCommitments(PlayerTypes)
- CvLeagueAI::ScoreProposal(CvLeague *, CvActiveResolution *)
- CvLeagueAI::ScoreProposal(CvLeague *, ResolutionTypes, int)
- CvLuaLeague::lGetChoicesForDecision(lua_State *)