Bazaar developer reference

CvLeague::DoProposeEnact(ResolutionTypes, PlayerTypes, int)

Defined in
CvVotingClasses.cpp, line 2282
Class
CvLeague
Hook name
CivHooks::CvLeague_DoProposeEnact

Hooks

static bool BeforeCvLeague_DoProposeEnact(CvLeague* self, ResolutionTypes eResolution, PlayerTypes eProposer, int iChoice);static void AfterCvLeague_DoProposeEnact(CvLeague* self, ResolutionTypes eResolution, PlayerTypes eProposer, int iChoice);static void ReplaceCvLeague_DoProposeEnact(void (*original)(CvLeague*, ResolutionTypes, PlayerTypes, int), CvLeague* self, ResolutionTypes eResolution, PlayerTypes eProposer, int iChoice);CivRegisterBefore<CivHooks::CvLeague_DoProposeEnact>(host, &BeforeCvLeague_DoProposeEnact);CivRegisterAfter<CivHooks::CvLeague_DoProposeEnact>(host, &AfterCvLeague_DoProposeEnact);CivRegisterReplace<CivHooks::CvLeague_DoProposeEnact>(host, &ReplaceCvLeague_DoProposeEnact);

Code

2282void CvLeague::DoProposeEnact(ResolutionTypes eResolution, PlayerTypes eProposer, int iChoice)2283{2284	if (!CanProposeEnact(eResolution, eProposer, iChoice))2285	{2286		CvAssertMsg(false, "Attempt to propose enact resolution when not allowed to. Please send Anton your save file and version.");2287		return;2288	}22892290	if (eProposer != NO_PLAYER)2291	{2292		// Decrement remaining proposals2293		if (IsMember(eProposer))2294		{2295			GetMember(eProposer)->iProposals = GetMember(eProposer)->iProposals - 1;2296			CvAssertMsg(GetMember(eProposer)->iProposals >= 0, "Attempt to propose enact resolution when not allowed to. Please send Anton your save file and version.");2297		}2298		else2299		{2300			CvAssertMsg(false, "Attempt to propose enact resolution when not allowed to. Please send Anton your save file and version.");2301		}23022303		// Proposals made by players could affect Diplomacy AI2304		LeagueHelpers::PlayerList vLikers = GetMembersThatLikeProposal(eResolution, eProposer, iChoice);2305		for (LeagueHelpers::PlayerList::iterator it = vLikers.begin(); it != vLikers.end(); ++it)2306		{2307			CvAssert((*it) != NO_PLAYER);2308			CvAssert(CanEverVote(*it));2309			GET_PLAYER(*it).GetDiplomacyAI()->SetTurnsSinceWeLikedTheirProposal(eProposer, 0);2310		}2311		LeagueHelpers::PlayerList vDislikers = GetMembersThatDislikeProposal(eResolution, eProposer, iChoice);2312		for (LeagueHelpers::PlayerList::iterator it = vDislikers.begin(); it != vDislikers.end(); ++it)2313		{2314			CvAssert((*it) != NO_PLAYER);2315			CvAssert(CanEverVote(*it));2316			GET_PLAYER(*it).GetDiplomacyAI()->SetTurnsSinceWeDislikedTheirProposal(eProposer, 0);2317		}2318	}2319	2320	CvEnactProposal proposal(GC.getGame().GetGameLeagues()->GenerateResolutionUniqueID(), eResolution, GetID(), eProposer, iChoice);2321	m_vEnactProposals.push_back(proposal);2322	GC.GetEngineUserInterface()->setDirty(LeagueScreen_DIRTY_BIT, true);2323}

Calls

Called by