Follow-up Comment #1, bug #22319 (project freeciv):

Oh, interesting.  It seems that is_native_move() isn't prepared to handle the
case of moving from a native tile (for non-road reasons) to a destination tile
that is native because of a road which is not an acceptable connecting road. 
Neither bug #16383 nor bug #22026 managed to consider this particular

Other ways to demonstrate the issue involve having a BuildAnywhere unit that
needs roads move to a roaded tile from a city without a road, moving from a
native base (with no road) to a roaded tile, etc.

Fix is to check whether the source is native for non-road (but possibly extra)
reasons as an additional else clause before entering the extras iteration: if
the source is native, check if the destination is native for any reason
(including roads: a simple is_native_to_class(punitclass, dst_tile) will do),
and if so, return TRUE.

I'm not up to writing a patch for that today, but will do so in the next
couple days if someone else doesn't get to it first.


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to