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