Help! i can't build a farm

Aries87

Chieftain
Joined
Feb 12, 2004
Messages
4
Location
Jönköping, Sweden
Hey, when i shall build a farm in civ 4 on a plain terrain and i hold the cursor over the farm icon then it says civil "service required to build a farm", and then when i have researching it says that i can build a farm but i can't. Nothing happens when i press the buttom and the icon is dark as when you can't build a thing.

Please help me with this someone, and i apologize if my english isn't so good i'm from sweden you know.
 
This isn't a tech support question as its related to gameplay but your problem is, without having aquired civil service tech., you are limited to building farms on squares adjacent to fresh water sources. Adajcent in this case also means squares diagonal to another. The only exception to this is building farms on resource squares such as corn or rice where a water source isn't required to build a farm.

Civil service tech allows players to spread farms because with this tech, irrigated sqaures count as adjacent fresh water sources. However, to build a farm still requires an adjacent water source. Are you sure this square has an irriagted farm next to it? If not that explains the problem.

Researching biology allows farms on any square (except mountains and deserts etc.) whehter it has access to water or not.
 
Sorry to bump this, but I had the same thing happen to me recently. Can't build the farm diagonally and in some cases DIRECTLY to the left/right/top/bottom of the square, even though I've researched Civil Service and already have a farm on it.

And this is with the BTS unofficial patch, by the way, which I thought fixed a lot of this stuff.
 
I'll have to do so when I get home, but yeah. I'll see if I can. It might've just been a one-time fluke. Basically, I had two situations.

1.) Farm is in the center of a 9 tile grid. If I moved to the left, right, top, or bottom, I couldn't build and the "Build farm" command was greyed out.

2.) Again, farm's at the center of a 9 tile grd. If I moved diagonally (which should still work with civil service), I also couldn't build. So it didn't matter if the arrangement was like "+" or like "X", I just couldn't build.
 
Yes, basically. It's part of a chain of farms bringing irrigation to an otherwise landlocked area. The really weird part is that the "Build farm" icon is there but it's greyed out. When I hold my cursor over it, it doesn't say "Need [Technology] to build farm", it's just greyed out.
 
How would something "break the chain" if it's literally like three in a row, or at least three diagonals or whatever? I'll try to post a screenshot, but the game itself may have been hosed (I got simultaneously declared on by several powers at once and just threw in the towel. I didn't really like my continent placement anyway -- playing as the Dutch and started out landlocked. Should've just regenerated the map.).
 
Reloaded a game and was able to build farms again. Weird. Oh well. Looks like it resolved itself. :)
 
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?
 
my bad, that code is in CvPlot.cpp, but you probably already knew that.

Method is:

bool CvPlot::canHaveImprovement(ImprovementTypes eImprovement, TeamTypes eTeam, bool bPotential) const
 
:hmm:
tundra is not supposed to allow irrigation chains - it is indeed the only terrain that can be farmed if it is directly connected to water but not otherwise - I am pretty sure this is intentional.
As for the code: I have to reread it when I am more awake - but it seems to do what you say...
 
Back
Top Bottom