From 7f28a79ae66dc07b3eb83aeeb3e3be73e70e7b0c Mon Sep 17 00:00:00 2001 From: PatR Date: Fri, 25 Feb 2022 22:35:04 -0800 Subject: [PATCH] fix github issue #686 - dead code Reported by argrath: the code in choose_stairs() intended as last resort wouldn't do anything because the loop's test condition always started out false. Fix suggested by entrez. Closes #686 --- src/wizard.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/wizard.c b/src/wizard.c index 784a20b90..e1d435104 100644 --- a/src/wizard.c +++ b/src/wizard.c @@ -314,24 +314,25 @@ void choose_stairs(xchar *sx, xchar *sy, boolean dir) { xchar x = 0, y = 0; - stairway *stway = g.stairs; + stairway *stway; boolean stdir = dir && !builds_up(&u.uz); if ((stway = stairway_find_type_dir(FALSE, stdir)) != 0) { + /* stairs in direction 'stdir' */ x = stway->sx; y = stway->sy; } else if ((stway = stairway_find_type_dir(TRUE, stdir)) != 0) { + /* ladder in direction 'stdir' */ x = stway->sx; y = stway->sy; } else { - while (stway) { + /* branch stairs in any direction */ + for (stway = g.stairs; stway; stway = stway->next) if (stway->tolev.dnum != u.uz.dnum) { x = stway->sx; y = stway->sy; break; } - stway = stway->next; - } } if (isok(x, y)) { -- 2.50.1