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
situation.

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:

  <http://gna.org/bugs/?22319>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to