Follow-up Comment #13, patch #3829 (project freeciv):
So, previously the client didn't do anything graphically, and this ended up
masking a bug that the client didn't actually *know* which roads integrated
(proad->integrates was always an empty bitvector, rather than being read from
the packet) [prior testing worked for simple moves, because the server would
correctly set the moves_left value, but was suboptimal for client-side
pathfinding calculations). New patch properly draws connections between
integrated roads (well, from a road towards roads it integrates with: roads
integrated with won't extend to integrating roads (doing this requires setting
both roads as cross-integrators in the ruleset)).
During testing of this change, I began to wonder if this patch should care
about commutativity. For graphical display, I'd argue it should not care
(because we don't want to draw random spurs from a high-speed road to
low-speed roads just because they are there). For tile_move_cost_ptrs,
perhaps it would be useful (because it doesn't make sense to pay full non-road
penalties when changing roads in one direction but not the other).
Alternately, figuring out how to handle commutativity for movement vs. display
might be just as well deferred to something else, so that others also get more
playtesting with this implementation to develop an opinion.
Additional Item Attachment:
File name: allow-compatible-roads+client.patch Size:17 KB
Reply to this item at:
Message sent via/by Gna!
Freeciv-dev mailing list