jamespetts/simutrans-experimental — pull request #26 by pipcet (2014-08-19 18:50:45+00:00)
Title: FIX: minor bug in factory location finder code

James,
this is independent of the issue Junna reported. I believe it's a bug in the factory placement code, which would effectively result in some city factories only appearing if there's a road at the corner of the building site, rather than anywhere near the margin.

This code is also broken in Standard, but in a different way.

However, I believe that the trick of checking welt->lookup(pos+koord3d(0,0,1)) to see whether we can build on a square is generally dodgy: there might be a bridge without pillars at height pos+koord3d(0,0,2), or pos+koord3d(0,0,5) for that matter. karte_t::square_is_free checks the first possibility, but not the second, and a few places appear to be doing the check by hand rather than calling square_is_free.

Am I right in thinking that the intention is for there not to be any bridges over city factories at all?

Philip