From a489729b1ba5d176add6b9afb7f1efd92f6c7f18 Mon Sep 17 00:00:00 2001 From: Marko Lindqvist Date: Sun, 27 Aug 2023 06:00:01 +0300 Subject: [PATCH 12/12] tile_move_cost_ptrs(): Rework to avoid BAD_HEURISTIC_INIT() See osdn #48544 Signed-off-by: Marko Lindqvist --- common/map.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/common/map.c b/common/map.c index 768ec24395..7d06a74552 100644 --- a/common/map.c +++ b/common/map.c @@ -781,8 +781,7 @@ int tile_move_cost_ptrs(const struct civ_map *nmap, { const struct unit_class *pclass = utype_class(punittype); int cost; - bool cardinality_checked = FALSE; - bool cardinal_move BAD_HEURISTIC_INIT(FALSE); + char cardinal_move = -1; bool ri; /* Try to exit early for detectable conditions */ @@ -843,12 +842,11 @@ int tile_move_cost_ptrs(const struct civ_map *nmap, if (proad->move_mode == RMM_FAST_ALWAYS) { cost = proad->move_cost; } else { - if (!cardinality_checked) { + if (cardinal_move < 0) { cardinal_move = (ALL_DIRECTIONS_CARDINAL() - || is_move_cardinal(nmap, t1, t2)); - cardinality_checked = TRUE; + || is_move_cardinal(nmap, t1, t2)) ? 1 : 0; } - if (cardinal_move) { + if (cardinal_move > 0) { cost = proad->move_cost; } else { switch (proad->move_mode) { @@ -892,11 +890,11 @@ int tile_move_cost_ptrs(const struct civ_map *nmap, } if (terrain_control.pythagorean_diagonal) { - if (!cardinality_checked) { + if (cardinal_move < 0) { cardinal_move = (ALL_DIRECTIONS_CARDINAL() - || is_move_cardinal(nmap, t1, t2)); + || is_move_cardinal(nmap, t1, t2)) ? 1 : 0; } - if (!cardinal_move) { + if (cardinal_move == 0) { return cost * 181 >> 7; /* == (int) (cost * 1.41421356f) if cost < 99 */ } } -- 2.40.1