Bazaar developer reference

CvPlayerAchievements::AddUnit(CvUnit *)

Defined in
CvAchievementUnlocker.cpp, line 262
Class
CvPlayerAchievements
Hook name
CivHooks::CvPlayerAchievements_AddUnit

Hooks

static bool BeforeCvPlayerAchievements_AddUnit(CvPlayerAchievements* self, CvUnit* pUnit);static void AfterCvPlayerAchievements_AddUnit(CvPlayerAchievements* self, CvUnit* pUnit);static void ReplaceCvPlayerAchievements_AddUnit(void (*original)(CvPlayerAchievements*, CvUnit*), CvPlayerAchievements* self, CvUnit* pUnit);CivRegisterBefore<CivHooks::CvPlayerAchievements_AddUnit>(host, &BeforeCvPlayerAchievements_AddUnit);CivRegisterAfter<CivHooks::CvPlayerAchievements_AddUnit>(host, &AfterCvPlayerAchievements_AddUnit);CivRegisterReplace<CivHooks::CvPlayerAchievements_AddUnit>(host, &ReplaceCvPlayerAchievements_AddUnit);

Code

262void CvPlayerAchievements::AddUnit(CvUnit* pUnit)263{264#if !defined(NO_ACHIEVEMENTS)265	if(m_kPlayer.GetID() != GC.getGame().getActivePlayer())266		return;267268	//Attempt to read from cache269	if(m_eEthiopiaType == UNDEFINED_TYPE)270	{271		m_eEthiopiaType = (CivilizationTypes)GC.getInfoTypeForString("CIVILIZATION_ETHIOPIA", true);272	}273274	if(m_eGreatProphetType == UNDEFINED_TYPE)275	{276		m_eGreatProphetType = (UnitTypes)GC.getInfoTypeForString("UNIT_PROPHET", true);277	}278279	if(m_eEthiopiaType != NO_CIVILIZATION && m_eGreatProphetType != NO_UNIT)280	{281		//* ACHIEVEMENT_XP1_32 - As Ethiopia, earn 5 great prophets282		if(m_kPlayer.getCivilizationType() == m_eEthiopiaType && pUnit->getUnitType() == m_eGreatProphetType)283		{284			m_iAchievement_XP1_32_Progress++;285			if(m_iAchievement_XP1_32_Progress >= 5)286			{287				gDLL->UnlockAchievement(ACHIEVEMENT_XP1_32);288			}289		}	290	}291#endif292}

Called by