diff --git a/src/do.c b/src/do.c index 26485069c..cacab11c7 100644 --- a/src/do.c +++ b/src/do.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 do.c $NHDT-Date: 1737287889 2025/01/19 03:58:09 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.399 $ */ +/* NetHack 3.7 do.c $NHDT-Date: 1774269965 2026/03/23 04:46:05 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.404 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Derek S. Ray, 2015. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1942,8 +1942,18 @@ goto_level( if (new) { char dloc[QBUFSZ]; /* Astral is excluded as a major event here because entry to it - is already one due to that being an achievement */ - boolean major = In_endgame(&u.uz) && !Is_astralevel(&u.uz); + is already one such due to that being an achievement; + for the quest, listing the start, locate, and goal levels would + seem reasonable but all quest levels are included for simplicity-- + level 2 (or 3 if hero level teleports after obtaining permission + to enter) is useful to show since it indicates that hero has + actually entered the quest rather than just received permission + to do so, and listing the goal level could be used to figure out + whether level 5 is the end or there's another level (ESP reveals + the same thing, but is part of normal game play as opposed to + #chronicle leaking information that hero hasn't discovered yet) */ + boolean major = ((In_endgame(&u.uz) && !Is_astralevel(&u.uz)) + || In_quest(&u.uz)); (void) describe_level(dloc, 2); livelog_printf(major ? LL_ACHIEVE : LL_DEBUG, "entered %s", dloc); diff --git a/src/quest.c b/src/quest.c index a436e2787..2b54baa86 100644 --- a/src/quest.c +++ b/src/quest.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 quest.c $NHDT-Date: 1687036547 2023/06/17 21:15:47 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.38 $ */ +/* NetHack 3.7 quest.c $NHDT-Date: 1774269965 2026/03/23 04:46:05 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.46 $ */ /* Copyright 1991, M. Stephenson */ /* NetHack may be freely redistributed. See license for details. */ @@ -339,6 +339,12 @@ chat_with_leader(struct monst *mtmp) com_pager("banished"); Qstat(pissed_off) = TRUE; expulsion(FALSE); + + /* being expelled is hardly an achievement but none of the + other livelog classifications fit */ + livelog_printf(LL_ACHIEVE, + "%s has expelled you from the quest", + noit_mon_nam(mtmp)); } } else if (purity == 0) { qt_pager("badalign"); @@ -349,6 +355,14 @@ chat_with_leader(struct monst *mtmp) qt_pager("assignquest"); exercise(A_WIS, TRUE); Qstat(got_quest) = TRUE; + + /* phrasing is a bit clumsy but allows #chronicle to provide a + clue to players who are reaching the quest for first time; + matters most for Home 1 that has stairs down which aren't + easily found */ + livelog_printf(LL_ACHIEVE, + "%s has granted access to proceed deeper into the quest", + noit_mon_nam(mtmp)); } } }