Bazaar developer reference

CvMinorCivQuest::IsContestLeader(PlayerTypes)

Defined in
CvMinorCivAI.cpp, line 428
Class
CvMinorCivQuest
Hook name
CivHooks::CvMinorCivQuest_IsContestLeader

Hooks

static bool BeforeCvMinorCivQuest_IsContestLeader(CvMinorCivQuest* self, PlayerTypes ePlayer, bool& result);static void AfterCvMinorCivQuest_IsContestLeader(CvMinorCivQuest* self, PlayerTypes ePlayer, bool& result);static bool ReplaceCvMinorCivQuest_IsContestLeader(bool (*original)(CvMinorCivQuest*, PlayerTypes), CvMinorCivQuest* self, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvMinorCivQuest_IsContestLeader>(host, &BeforeCvMinorCivQuest_IsContestLeader);CivRegisterAfter<CivHooks::CvMinorCivQuest_IsContestLeader>(host, &AfterCvMinorCivQuest_IsContestLeader);CivRegisterReplace<CivHooks::CvMinorCivQuest_IsContestLeader>(host, &ReplaceCvMinorCivQuest_IsContestLeader);

Code

427// Is this player currently the contest leader?  (if no ePlayer is passed in, checks the player this instance of the quest is assigned to)428bool CvMinorCivQuest::IsContestLeader(PlayerTypes ePlayer)429{430	if(ePlayer == NO_PLAYER)431		ePlayer = GetPlayerAssignedTo();432433	MinorCivQuestTypes eType = GetType();434	CvPlayer* pMinor = &GET_PLAYER(GetMinor());435	if(!pMinor)436	{437		CvAssertMsg(false, "Error when calculating contest standings - could not find minor civ! Please send Anton your save file and version.");438		return false;439	}440	// Player must actually be in the contest!441	if(!pMinor->GetMinorCivAI()->IsActiveQuestForPlayer(ePlayer, eType))442		return false;443444#if defined(MOD_EVENTS_QUESTS)445	bool bTestLeader = false;446	447	if (UseEvents()) {448		bTestLeader = m_pQuestInfo->isContest();449	} else {450#endif451	if(eType == MINOR_CIV_QUEST_CONTEST_CULTURE ||452	        eType == MINOR_CIV_QUEST_CONTEST_FAITH ||453	        eType == MINOR_CIV_QUEST_CONTEST_TECHS)454#if defined(MOD_EVENTS_QUESTS)455		{456			bTestLeader = true;457		}458	}459	460	if (bTestLeader)461#endif462	{463		CivsList veTiedForLead = GetContestLeaders();464		for(uint ui = 0; ui < veTiedForLead.size(); ui++)465		{466			if(ePlayer == veTiedForLead[ui])467			{468				return true;469			}470		}471	}472473	return false;474}

Calls

Called by