Bazaar developer reference

CvMinorCivAI::AddQuestForPlayer(PlayerTypes, MinorCivQuestTypes, int)

Defined in
CvMinorCivAI.cpp, line 3751
Class
CvMinorCivAI
Hook name
CivHooks::CvMinorCivAI_AddQuestForPlayer

Hooks

static bool BeforeCvMinorCivAI_AddQuestForPlayer(CvMinorCivAI* self, PlayerTypes ePlayer, MinorCivQuestTypes eType, int iStartTurn);static void AfterCvMinorCivAI_AddQuestForPlayer(CvMinorCivAI* self, PlayerTypes ePlayer, MinorCivQuestTypes eType, int iStartTurn);static void ReplaceCvMinorCivAI_AddQuestForPlayer(void (*original)(CvMinorCivAI*, PlayerTypes, MinorCivQuestTypes, int), CvMinorCivAI* self, PlayerTypes ePlayer, MinorCivQuestTypes eType, int iStartTurn);CivRegisterBefore<CivHooks::CvMinorCivAI_AddQuestForPlayer>(host, &BeforeCvMinorCivAI_AddQuestForPlayer);CivRegisterAfter<CivHooks::CvMinorCivAI_AddQuestForPlayer>(host, &AfterCvMinorCivAI_AddQuestForPlayer);CivRegisterReplace<CivHooks::CvMinorCivAI_AddQuestForPlayer>(host, &ReplaceCvMinorCivAI_AddQuestForPlayer);

Code

3750/// Begin a quest, initializing it with data3751void CvMinorCivAI::AddQuestForPlayer(PlayerTypes ePlayer, MinorCivQuestTypes eType, int iStartTurn)3752{3753	CvAssertMsg(ePlayer >= 0, "ePlayer is expected to be non-negative (invalid Index)");3754	CvAssertMsg(ePlayer < MAX_MAJOR_CIVS, "ePlayer is expected to be within maximum bounds (invalid Index)");3755	if(ePlayer < 0 || ePlayer >= MAX_MAJOR_CIVS) return;37563757#if defined(MOD_EVENTS_QUESTS)3758	CvAssertMsg(eType >= NO_MINOR_CIV_QUEST_TYPE, "eType is expected to be non-negative (invalid Index)");3759	CvAssertMsg(eType < NUM_MINOR_CIV_QUEST_TYPES, "eType is expected to be within maximum bounds (invalid Index)");3760	if(eType < NO_MINOR_CIV_QUEST_TYPE || eType >= GC.getNumQuestInfos()) return;3761#else3762	CvAssertMsg(eType >= NO_MINOR_CIV_QUEST_TYPE, "eType is expected to be non-negative (invalid Index)");3763	CvAssertMsg(eType < NUM_MINOR_CIV_QUEST_TYPES, "eType is expected to be within maximum bounds (invalid Index)");3764	if(eType < NO_MINOR_CIV_QUEST_TYPE || eType >= NUM_MINOR_CIV_QUEST_TYPES) return;3765#endif37663767	// ePlayer can only have at most one quest of each type3768	CvAssertMsg(!IsActiveQuestForPlayer(ePlayer, eType), "ePlayer already has a quest of this type!");3769	if(IsActiveQuestForPlayer(ePlayer, eType)) return;37703771	CvMinorCivQuest newQuest(GetPlayer()->GetID(), ePlayer, eType);3772	newQuest.DoStartQuest(iStartTurn);3773	m_QuestsGiven[ePlayer].push_back(newQuest);37743775	// Log quest received3776	GET_PLAYER(ePlayer).GetDiplomacyAI()->LogMinorCivQuestReceived(GetPlayer()->GetID(), GetEffectiveFriendshipWithMajorTimes100(ePlayer), GetEffectiveFriendshipWithMajorTimes100(ePlayer), eType);3777}

Calls

Called by