Bazaar developer reference

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

Called by