if (pkBuildingInfo->IsRequiresRail() && !GC.getGame().isOption(GAMEOPTION_ONE_CITY_CHALLENGE))
{
//this flag is also set for water connection once railroad is available
if (!IsIndustrialRouteToCapitalConnected())
return false;
//therefore also check for an actual railroad here
bool bRailroad = false;
for (int iDirectionLoop = 0; iDirectionLoop < NUM_DIRECTION_TYPES; iDirectionLoop++)
{
CvPlot* pAdjacentPlot = plotDirection(getX(), getY(), ((DirectionTypes)iDirectionLoop));
if (pAdjacentPlot && pAdjacentPlot->getRouteType() == ROUTE_RAILROAD && pAdjacentPlot->IsCityConnection(getOwner()))
{
bRailroad = true;
break;
}
}
if (!bRailroad)
return false;
}