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}