From a6954db376c00b4457d7cc8f4fa4ef32deb9397d Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Sat, 1 Jul 2017 23:33:57 -0400 Subject: [PATCH] Rewrite dwarf-encounter ceck so coverage testing sees all predicates. --- main.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/main.c b/main.c index 4531be7..766082b 100644 --- a/main.c +++ b/main.c @@ -381,21 +381,27 @@ static bool dwarfmove(void) do { game.newloc = travel[kk].dest; /* Have we avoided a dwarf encounter? */ - bool avoided = (SPECIAL(game.newloc) || - !INDEEP(game.newloc) || - game.newloc == game.odloc[i] || - (j > 1 && game.newloc == tk[j - 1]) || - j >= DIM(tk) - 1 || - game.newloc == game.dloc[i] || - FORCED(game.newloc) || - (i == PIRATE && CNDBIT(game.newloc, COND_NOARRR)) || - travel[kk].nodwarves); - if (!avoided) { - tk[j++] = game.newloc; - } - ++kk; + if (SPECIAL(game.newloc)) + continue; + else if (!INDEEP(game.newloc)) + continue; + else if (game.newloc == game.odloc[i]) + continue; + else if (j > 1 && game.newloc == tk[j - 1]) + continue; + else if (j >= DIM(tk) - 1) + continue; + else if (game.newloc == game.dloc[i]) + continue; + else if (FORCED(game.newloc)) + continue; + else if (i == PIRATE && CNDBIT(game.newloc, COND_NOARRR)) + continue; + else if (travel[kk].nodwarves) + continue; + tk[j++] = game.newloc; } while - (!travel[kk - 1].stop); + (!travel[kk++].stop); tk[j] = game.odloc[i]; if (j >= 2) --j; -- 2.31.1