Hate to post here, as this is the wrong forum, but I'm on a similar thread.
I had a number of tundra squares, with one farm in one tundra space (it was near a river tile).
Once I got biology, I was unable to place farms in any of the remaining tundra squares (I didn't check if I could farm the "connecting" tiles with civil service).
I've checked the code in CvTeam.cpp, and it appears unchanged from base game --> BTS --> unofficial patch. I believe this is the relevant code, and it <looks> ok to me without having in-depth knowledge of the codebase:
if ((getTeam() == NO_TEAM) || !(GET_TEAM(getTeam()).isIgnoreIrrigation()))
{
if (!bPotential && GC.getImprovementInfo(eImprovement).isRequiresIrrigation() && !isIrrigationAvailable())
{
return false;
}
}
Returning false here means you cannot place the improvement in question upon the terrain in question. I read this as getTeam() == NO_TEAM is false, so it evaluates the 2nd half of the ||. (GET_TEAM(getTeam()).isIgnoreIrrigation()) should return true (a check in TechInfo.xml (w/e it is called) shows bIgnoreIrrigation is 1 for TECH_BIOLOGY), in which case the 2nd half of the || is false, and the entire code segment is skipped.
Skipping the above segment causes the method in question to return True, so I should be capable of building a farm.
Any ideas?