Bazaar developer reference

CvPlayerAchievements::AttackedUnitWithUnit(CvUnit *, CvUnit *)

Defined in
CvAchievementUnlocker.cpp, line 294
Class
CvPlayerAchievements
Hook name
CivHooks::CvPlayerAchievements_AttackedUnitWithUnit

Hooks

static bool BeforeCvPlayerAchievements_AttackedUnitWithUnit(CvPlayerAchievements* self, CvUnit* pAttackingUnit, CvUnit* pDefendingUnit);static void AfterCvPlayerAchievements_AttackedUnitWithUnit(CvPlayerAchievements* self, CvUnit* pAttackingUnit, CvUnit* pDefendingUnit);static void ReplaceCvPlayerAchievements_AttackedUnitWithUnit(void (*original)(CvPlayerAchievements*, CvUnit*, CvUnit*), CvPlayerAchievements* self, CvUnit* pAttackingUnit, CvUnit* pDefendingUnit);CivRegisterBefore<CivHooks::CvPlayerAchievements_AttackedUnitWithUnit>(host, &BeforeCvPlayerAchievements_AttackedUnitWithUnit);CivRegisterAfter<CivHooks::CvPlayerAchievements_AttackedUnitWithUnit>(host, &AfterCvPlayerAchievements_AttackedUnitWithUnit);CivRegisterReplace<CivHooks::CvPlayerAchievements_AttackedUnitWithUnit>(host, &ReplaceCvPlayerAchievements_AttackedUnitWithUnit);

Code

294void CvPlayerAchievements::AttackedUnitWithUnit(CvUnit* pAttackingUnit, CvUnit* pDefendingUnit)295{296#if !defined(NO_ACHIEVEMENTS)297	if(m_kPlayer.GetID() != GC.getGame().getActivePlayer())298		return;299300	if(m_eCarthageType == UNDEFINED_TYPE)301	{302		m_eCarthageType = (CivilizationTypes)GC.getInfoTypeForString("CIVILIZATION_CARTHAGE", true);303	}304305	if(m_eRomeType == UNDEFINED_TYPE)306	{307		m_eRomeType = (CivilizationTypes)GC.getInfoTypeForString("CIVILIZATION_ROME", true);308	}309310	if(m_eAfricanForestElephantType == UNDEFINED_TYPE)311	{312		m_eAfricanForestElephantType = (UnitTypes)GC.getInfoTypeForString("UNIT_CARTHAGINIAN_FOREST_ELEPHANT", true);313	}314	315	if(m_eCarthageType != NO_CIVILIZATION && m_eRomeType != NO_CIVILIZATION && m_eAfricanForestElephantType != NO_UNIT)316	{317		if(pAttackingUnit->getCivilizationType() == m_eCarthageType &&318			pAttackingUnit->getUnitType() == m_eAfricanForestElephantType &&319			pAttackingUnit->plot()->getPlotType() == PLOT_MOUNTAIN &&320			pDefendingUnit->getCivilizationType() == m_eRomeType)321		{322			gDLL->UnlockAchievement(ACHIEVEMENT_XP1_29);323		}324	}325#endif326}