Bazaar developer reference

CvTeam::shareItems(TeamTypes)

Defined in
CvTeam.cpp, line 599
Class
CvTeam
Hook name
CivHooks::CvTeam_shareItems

Hooks

static bool BeforeCvTeam_shareItems(CvTeam* self, TeamTypes eTeam);static void AfterCvTeam_shareItems(CvTeam* self, TeamTypes eTeam);static void ReplaceCvTeam_shareItems(void (*original)(CvTeam*, TeamTypes), CvTeam* self, TeamTypes eTeam);CivRegisterBefore<CivHooks::CvTeam_shareItems>(host, &BeforeCvTeam_shareItems);CivRegisterAfter<CivHooks::CvTeam_shareItems>(host, &AfterCvTeam_shareItems);CivRegisterReplace<CivHooks::CvTeam_shareItems>(host, &ReplaceCvTeam_shareItems);

Code

599void CvTeam::shareItems(TeamTypes eTeam)600{601	CvCity* pLoopCity;602	int iLoop;603	int iI, iJ, iK;604605	CvAssert(eTeam != NO_TEAM);606	CvAssert(eTeam != GetID());607608	CvTeam& kTeam = GET_TEAM(eTeam);609610	for(iI = 0; iI < GC.getNumTechInfos(); iI++)611	{612		if(kTeam.GetTeamTechs()->HasTech((TechTypes)iI))613		{614			setHasTech(((TechTypes)iI), true, NO_PLAYER, true, false);615		}616	}617618	for(iI = 0; iI < GC.getNumResourceInfos(); ++iI)619	{620		if(kTeam.isForceRevealedResource((ResourceTypes)iI))621		{622			setForceRevealedResource((ResourceTypes)iI, true);623		}624	}625626	for(iI = 0; iI < MAX_PLAYERS; iI++)627	{628		CvPlayerAI& kPlayer = GET_PLAYER(static_cast<PlayerTypes>(iI));629		if(kPlayer.isAlive())630		{631			if(kPlayer.getTeam() == eTeam)632			{633				for(pLoopCity = kPlayer.firstCity(&iLoop); pLoopCity != NULL; pLoopCity = kPlayer.nextCity(&iLoop))634				{635					for(iJ = 0; iJ < GC.getNumBuildingInfos(); iJ++)636					{637						const BuildingTypes eBuilding = static_cast<BuildingTypes>(iJ);638						CvBuildingEntry* pkBuildingInfo = GC.getBuildingInfo(eBuilding);639						if(pkBuildingInfo)640						{641							if(pLoopCity->GetCityBuildings()->GetNumBuilding(eBuilding) > 0)642							{643								if(!isObsoleteBuilding(eBuilding))644								{645									if(pkBuildingInfo->IsTeamShare())646									{647										for(iK = 0; iK < MAX_PLAYERS; iK++)648										{649											CvPlayerAI& kOtherPlayer = GET_PLAYER(static_cast<PlayerTypes>(iK));650											if(kOtherPlayer.isAlive() && kOtherPlayer.getTeam() == m_eID)651											{652												kOtherPlayer.processBuilding(eBuilding, pLoopCity->GetCityBuildings()->GetNumBuilding(eBuilding), /*bFirst*/ false, pLoopCity->area());653											}654										}655									}656657									processBuilding(eBuilding, pLoopCity->GetCityBuildings()->GetNumBuilding(eBuilding), /*bFirst*/ false);658								}659							}660						}661					}662				}663			}664		}665	}666667}

Calls

Called by