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
- CvCity::GetCityBuildings() const
- CvCity::processBuilding(BuildingTypes, int, bool, bool, bool)
- CvCityBuildings::GetNumBuilding(BuildingTypes) const
- CvPlayer::firstCity(int *, bool)
- CvPlayer::getTeam() const
- CvPlayer::isAlive() const
- CvPlayer::nextCity(int *, bool)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvTeam::GetID() const
- CvTeam::isObsoleteBuilding(BuildingTypes) const