Bazaar developer reference

CvPlayerAchievements::FinishedBuilding(CvCity *, BuildingTypes)

Defined in
CvAchievementUnlocker.cpp, line 462
Class
CvPlayerAchievements
Hook name
CivHooks::CvPlayerAchievements_FinishedBuilding

Hooks

static bool BeforeCvPlayerAchievements_FinishedBuilding(CvPlayerAchievements* self, CvCity* pkCity, BuildingTypes eBuilding);static void AfterCvPlayerAchievements_FinishedBuilding(CvPlayerAchievements* self, CvCity* pkCity, BuildingTypes eBuilding);static void ReplaceCvPlayerAchievements_FinishedBuilding(void (*original)(CvPlayerAchievements*, CvCity*, BuildingTypes), CvPlayerAchievements* self, CvCity* pkCity, BuildingTypes eBuilding);CivRegisterBefore<CivHooks::CvPlayerAchievements_FinishedBuilding>(host, &BeforeCvPlayerAchievements_FinishedBuilding);CivRegisterAfter<CivHooks::CvPlayerAchievements_FinishedBuilding>(host, &AfterCvPlayerAchievements_FinishedBuilding);CivRegisterReplace<CivHooks::CvPlayerAchievements_FinishedBuilding>(host, &ReplaceCvPlayerAchievements_FinishedBuilding);

Code

462void CvPlayerAchievements::FinishedBuilding(CvCity* pkCity, BuildingTypes eBuilding)463{464#if !defined(NO_ACHIEVEMENTS)465	if(m_eCollossusType == UNDEFINED_TYPE)466	{467		m_eCollossusType = (BuildingTypes)GC.getInfoTypeForString("BUILDING_COLOSSUS", true);468	}469470	if(m_ePetraType == UNDEFINED_TYPE)471	{472		m_ePetraType = (BuildingTypes)GC.getInfoTypeForString("BUILDING_PETRA", true);473	}474475	if(m_eCaravansaryType == UNDEFINED_TYPE)476	{477		m_eCaravansaryType = (BuildingTypes)GC.getInfoTypeForString("BUILDING_CARAVANSARY", true);478	}479480	if(m_eHarborType == UNDEFINED_TYPE)481	{482		m_eHarborType = (BuildingTypes)GC.getInfoTypeForString("BUILDING_HARBOR", true);483	}484485	if(m_kPlayer.isLocalPlayer() && m_kPlayer.isHuman() && m_eCollossusType != NO_BUILDING && m_ePetraType != NO_BUILDING && m_eCaravansaryType != NO_BUILDING && m_eHarborType != NO_BUILDING)486	{487		CvCityBuildings* pkBuildings = pkCity->GetCityBuildings();488		if(pkBuildings != NULL)489		{490			if(pkBuildings->GetNumBuilding(m_eCollossusType) > 0 &&491				pkBuildings->GetNumBuilding(m_ePetraType) > 0 &&492				pkBuildings->GetNumBuilding(m_eCaravansaryType) > 0 &&493				pkBuildings->GetNumBuilding(m_eHarborType) > 0)494			{495				gDLL->UnlockAchievement(ACHIEVEMENT_XP2_30);496			}497		}498	}499#endif500}