From 5ef845477107cc48481e82bdb32badeb60807457 Mon Sep 17 00:00:00 2001 From: PatR Date: Sun, 28 Aug 2022 16:57:42 -0700 Subject: [PATCH] lev_by_name() formatting bits Formatting became strange when '#ifdef WIZARD' became unconditional several years ago, then the bitmask testing code itself became a bit strange when amnesia got changed a couple of years ago. --- src/dungeon.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/dungeon.c b/src/dungeon.c index 95e40bfe8..f0a0052a3 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -1977,10 +1977,10 @@ level_difficulty(void) /* within same branch, or else main dungeon <-> gehennom */ #define dlev_in_current_branch(dlev) \ - (dlev.dnum == u.uz.dnum \ - || (u.uz.dnum == valley_level.dnum \ - && dlev.dnum == medusa_level.dnum) \ - || (u.uz.dnum == medusa_level.dnum \ + (dlev.dnum == u.uz.dnum \ + || (u.uz.dnum == valley_level.dnum \ + && dlev.dnum == medusa_level.dnum) \ + || (u.uz.dnum == medusa_level.dnum \ && dlev.dnum == valley_level.dnum)) /* Take one word and try to match it to a level. @@ -2026,10 +2026,10 @@ lev_by_name(const char *nam) if (mseen || slev) { idx = ledger_no(&dlev); if (dlev_in_current_branch(dlev) - && (/* either wizard mode or else seen and not forgotten */ - wizard - || (g.level_info[idx].flags & (VISITED)) - == VISITED)) { + /* either wizard mode or else seen and not forgotten; + note: used to be '(flags & (FORGOTTEN|VISITED)) == VISITED' + back when amnesia could cause levels to be forgotten */ + && (wizard || (g.level_info[idx].flags & (VISITED)) == VISITED)) { lev = depth(&dlev); } } else { /* not a specific level; try branch names */ @@ -2042,11 +2042,9 @@ lev_by_name(const char *nam) idxtoo = (idx >> 8) & 0x00FF; idx &= 0x00FF; /* either wizard mode, or else _both_ sides of branch seen */ - if (wizard - || (((g.level_info[idx].flags & (VISITED)) - == VISITED) - && ((g.level_info[idxtoo].flags & (VISITED)) - == VISITED))) { + if (wizard || (((g.level_info[idx].flags & (VISITED)) == VISITED) + && ((g.level_info[idxtoo].flags & (VISITED)) + == VISITED))) { if (ledger_to_dnum(idxtoo) == u.uz.dnum) idx = idxtoo; dlev.dnum = ledger_to_dnum(idx);