Bazaar developer reference

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

Called by