bFirst = true;
if (NO_PLAYER != GC.getGameINLINE().getActivePlayer())
{
if (!GET_PLAYER(GC.getGameINLINE().getActivePlayer()).isCivic(eCivic))
{
for (iI = 0; iI < GC.getNumBuildingClassInfos(); ++iI)
{
eLoopBuilding = (BuildingTypes)GC.getCivilizationInfo(GC.getGameINLINE().getActiveCivilizationType()).getCivilizationBuildings(iI);
if (eLoopBuilding != NO_BUILDING)
{
if (GC.getGameINLINE().canEverConstruct(eLoopBuilding))
{
bool bObsolete = false;
CivicTypes eCurCivic = GET_PLAYER(GC.getGameINLINE().getActivePlayer()).getCivics((CivicOptionTypes)GC.getCivicInfo(eCivic).getCivicOptionType());
if (GC.getBuildingInfo(eLoopBuilding).isPrereqAndCivics(eCurCivic))
{
bObsolete = true;
}
else if (GC.getBuildingInfo(eLoopBuilding).isPrereqOrCivics(eCurCivic) && !GC.getBuildingInfo(eLoopBuilding).isPrereqOrCivics(eCivic))
{
bObsolete = true;
for (int iJ = 0; iJ < GC.getNumCivicInfos(); iJ++)
{
if (iJ != eCurCivic && iJ != eCivic)
{
if (GC.getBuildingInfo(eLoopBuilding).isPrereqOrCivics((CivicTypes)iJ))
{
if (GET_PLAYER(GC.getGameINLINE().getActivePlayer()).isCivic((CivicTypes)iJ))
{
bObsolete = false;
break;
}
}
}
}
}
if (bObsolete)
{
CvWString szBuilding;
HERE -----------------> szFirstBuffer.Format(L"%s%s", NEWLINE, gDLL->getText("TXT_KEY_CIVIC_BLOCKS_BUILDING").c_str());
szBuilding.Format(L"<link=literal>%s</link>", GC.getBuildingInfo(eLoopBuilding).getDescription());
setListHelp(szHelpText, szFirstBuffer, szBuilding, L", ", bFirst);
bFirst = false;
}
}
}
}
}
}