Bazaar developer reference

CvTeam::changeObsoleteBuildingCount(BuildingTypes, int)

Defined in
CvTeam.cpp, line 4935
Class
CvTeam
Hook name
CivHooks::CvTeam_changeObsoleteBuildingCount

Hooks

static bool BeforeCvTeam_changeObsoleteBuildingCount(CvTeam* self, BuildingTypes eIndex, int iChange);static void AfterCvTeam_changeObsoleteBuildingCount(CvTeam* self, BuildingTypes eIndex, int iChange);static void ReplaceCvTeam_changeObsoleteBuildingCount(void (*original)(CvTeam*, BuildingTypes, int), CvTeam* self, BuildingTypes eIndex, int iChange);CivRegisterBefore<CivHooks::CvTeam_changeObsoleteBuildingCount>(host, &BeforeCvTeam_changeObsoleteBuildingCount);CivRegisterAfter<CivHooks::CvTeam_changeObsoleteBuildingCount>(host, &AfterCvTeam_changeObsoleteBuildingCount);CivRegisterReplace<CivHooks::CvTeam_changeObsoleteBuildingCount>(host, &ReplaceCvTeam_changeObsoleteBuildingCount);

Code

4935void CvTeam::changeObsoleteBuildingCount(BuildingTypes eIndex, int iChange)4936{4937	CvCity* pLoopCity;4938	bool bOldObsoleteBuilding;4939	int iLoop;4940	int iI;49414942	CvAssertMsg(eIndex >= 0, "eIndex is expected to be non-negative (invalid Index)");4943	CvAssertMsg(eIndex < GC.getNumBuildingInfos(), "eIndex is expected to be within maximum bounds (invalid Index)");49444945	if(iChange != 0)4946	{4947		bOldObsoleteBuilding = isObsoleteBuilding(eIndex);49484949		m_paiObsoleteBuildingCount[eIndex] = (m_paiObsoleteBuildingCount[eIndex] + iChange);4950		CvAssert(getObsoleteBuildingCount(eIndex) >= 0);49514952		if(bOldObsoleteBuilding != isObsoleteBuilding(eIndex))4953		{4954			for(iI = 0; iI < MAX_PLAYERS; iI++)4955			{4956				if(GET_PLAYER((PlayerTypes)iI).isAlive())4957				{4958					if(GET_PLAYER((PlayerTypes)iI).getTeam() == GetID())4959					{4960						for(pLoopCity = GET_PLAYER((PlayerTypes)iI).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER((PlayerTypes)iI).nextCity(&iLoop))4961						{4962							if(pLoopCity->GetCityBuildings()->GetNumBuilding(eIndex) > 0)4963							{4964								pLoopCity->processBuilding(eIndex, ((isObsoleteBuilding(eIndex)) ? -pLoopCity->GetCityBuildings()->GetNumBuilding(eIndex) : pLoopCity->GetCityBuildings()->GetNumBuilding(eIndex)), /*bFirst*/ false, /*bObsolete*/ true);4965							}4966						}4967					}4968				}4969			}4970		}4971	}4972}

Calls

Called by