CvTeam::processBuilding(BuildingTypes, int, bool)
- Defined in
- CvTeam.cpp, line 725
- Class
- CvTeam
- Hook name
CivHooks::CvTeam_processBuilding
Hooks
static bool BeforeCvTeam_processBuilding(CvTeam* self, BuildingTypes eBuilding, int iChange, bool bFirst);static void AfterCvTeam_processBuilding(CvTeam* self, BuildingTypes eBuilding, int iChange, bool bFirst);static void ReplaceCvTeam_processBuilding(void (*original)(CvTeam*, BuildingTypes, int, bool), CvTeam* self, BuildingTypes eBuilding, int iChange, bool bFirst);CivRegisterBefore<CivHooks::CvTeam_processBuilding>(host, &BeforeCvTeam_processBuilding);CivRegisterAfter<CivHooks::CvTeam_processBuilding>(host, &AfterCvTeam_processBuilding);CivRegisterReplace<CivHooks::CvTeam_processBuilding>(host, &ReplaceCvTeam_processBuilding);
Code
725void CvTeam::processBuilding(BuildingTypes eBuilding, int iChange, bool bFirst)726{727 CvBuildingEntry* pBuildingInfo = GC.getBuildingInfo(eBuilding);728 if(pBuildingInfo == NULL)729 return;730731 // One-shot items732 if(bFirst && iChange > 0)733 {734 // Diplo victory735 if(pBuildingInfo->IsDiplomaticVoting())736 {737 SetHomeOfUnitedNations(true);738 GC.getGame().GetGameLeagues()->DoUnitedNationsBuilt(getLeaderID());739 }740 }741742 changeVictoryPoints((pBuildingInfo->GetVictoryPoints()) * iChange);743744 if((pBuildingInfo->GetTechShare() > 0) && (pBuildingInfo->GetTechShare() <= MAX_TEAMS))745 {746 changeTechShareCount((pBuildingInfo->GetTechShare() - 1), iChange);747 }748749 if(pBuildingInfo->IsBorderObstacle())750 {751 changeBorderObstacleCount(pBuildingInfo->IsBorderObstacle() * iChange);752 }753754 if(pBuildingInfo->IsMapCentering())755 {756 if(iChange > 0)757 {758 setMapCentering(true);759 }760 }761762 // Effects in every City on this Team763 for(int iPlayerLoop = 0; iPlayerLoop < MAX_CIV_PLAYERS; iPlayerLoop++)764 {765 CvPlayerAI& kPlayer = GET_PLAYER((PlayerTypes) iPlayerLoop);766 if(kPlayer.getTeam() == m_eID && kPlayer.isAlive())767 {768 CvCity* pLoopCity;769 int iLoop;770771 for(pLoopCity = kPlayer.firstCity(&iLoop); pLoopCity != NULL; pLoopCity = kPlayer.nextCity(&iLoop))772 {773 pLoopCity->GetCityBuildings()->ChangeBuildingDefenseMod(pBuildingInfo->GetGlobalDefenseModifier() * iChange);774 }775 }776 }777}
Calls
- CvBuildingEntry::GetGlobalDefenseModifier() const
- CvBuildingEntry::GetTechShare() const
- CvBuildingEntry::GetVictoryPoints() const
- CvBuildingEntry::IsBorderObstacle() const
- CvBuildingEntry::IsDiplomaticVoting() const
- CvBuildingEntry::IsMapCentering() const
- CvCity::GetCityBuildings() const
- CvCityBuildings::ChangeBuildingDefenseMod(int)
- CvGame::GetGameLeagues()
- CvGameLeagues::DoUnitedNationsBuilt(PlayerTypes)
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getGame()
- CvPlayer::firstCity(int *, bool)
- CvPlayer::getTeam() const
- CvPlayer::isAlive() const
- CvPlayer::nextCity(int *, bool)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvTeam::changeBorderObstacleCount(int)
- CvTeam::changeTechShareCount(int, int)
- CvTeam::changeVictoryPoints(int)
- CvTeam::getLeaderID() const
- CvTeam::SetHomeOfUnitedNations(bool)
- CvTeam::setMapCentering(bool)