Bazaar developer reference

CvLeague::CanProposeRepeal(int, PlayerTypes, CvString *)

Defined in
CvVotingClasses.cpp, line 2579
Class
CvLeague
Hook name
CivHooks::CvLeague_CanProposeRepeal
Lua events
GameEvents.PlayerCanPropose

Hooks

static bool BeforeCvLeague_CanProposeRepeal(CvLeague* self, int iResolutionID, PlayerTypes eProposer, CvString* sTooltipSink, bool& result);static void AfterCvLeague_CanProposeRepeal(CvLeague* self, int iResolutionID, PlayerTypes eProposer, CvString* sTooltipSink, bool& result);static bool ReplaceCvLeague_CanProposeRepeal(bool (*original)(CvLeague*, int, PlayerTypes, CvString*), CvLeague* self, int iResolutionID, PlayerTypes eProposer, CvString* sTooltipSink);CivRegisterBefore<CivHooks::CvLeague_CanProposeRepeal>(host, &BeforeCvLeague_CanProposeRepeal);CivRegisterAfter<CivHooks::CvLeague_CanProposeRepeal>(host, &AfterCvLeague_CanProposeRepeal);CivRegisterReplace<CivHooks::CvLeague_CanProposeRepeal>(host, &ReplaceCvLeague_CanProposeRepeal);

Code

2579bool CvLeague::CanProposeRepeal(int iResolutionID, PlayerTypes eProposer, CvString* sTooltipSink)2580{2581	bool bValid = true;25822583	// Is a player proposing this?2584	if (eProposer != NO_PLAYER)2585	{2586		// Must be a member2587		if (!IsMember(eProposer))2588			bValid = false;25892590		// Must have right to propose2591		if (!CanPropose(eProposer))2592			bValid = false;2593	}2594	CvAssertMsg(eProposer != NO_PLAYER, "Checking to see if a NO_PLAYER can propose a repeal. Please send Anton your save file and version.");25952596	// Must not already be proposed2597	if (IsRepealProposed(iResolutionID))2598	{2599		if (sTooltipSink != NULL)2600		{2601			(*sTooltipSink) += "[NEWLINE][NEWLINE][COLOR_WARNING_TEXT]";2602			(*sTooltipSink) += Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_INVALID_RESOLUTION_ALREADY_PROPOSED").toUTF8();2603			(*sTooltipSink) += "[ENDCOLOR]";2604		}2605		bValid = false;2606	}26072608#if defined(MOD_EVENTS_RESOLUTIONS)2609	if (MOD_EVENTS_RESOLUTIONS) {2610		if (GAMEEVENTINVOKE_TESTALL(GAMEEVENT_PlayerCanPropose, eProposer, iResolutionID, 0, false) == GAMEEVENTRETURN_FALSE) {2611			bValid = false;2612		}2613	}2614#endif2615	2616	2617	// Must already be active2618	for (uint iIndex = 0; iIndex < m_vActiveResolutions.size(); iIndex++)2619	{2620		if (m_vActiveResolutions[iIndex].GetID() == iResolutionID)2621		{2622			return bValid;2623		}2624	}2625	CvAssertMsg(false, "Resolution ID does not exist as an Active Resolution. Please send Anton your save file and version.");2626	return false;2627}

Calls

Called by