diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index c620671a7..ad03dfb6d 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -1,4 +1,4 @@ -HDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1196 $ $NHDT-Date: 1686386794 2023/06/10 08:46:34 $ +HDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1201 $ $NHDT-Date: 1687036542 2023/06/17 21:15:42 $ General Fixes and Modified Features ----------------------------------- @@ -1621,6 +1621,7 @@ entering the tutorial stashed hero's equipment for eventual return to normal entering the tutorial and then returning to play made the tutorial branch be eligible for a portal destination via wizard's Eye of the Aethiopica 'hard helmet' was based on being metallic so overlooked crystal helmet +don't blame/credit hero for stinking cloud if dying quest nemesis releases one Fixes to 3.7.0-x Platform and/or Interface Problems Exposed Via git Repository diff --git a/include/extern.h b/include/extern.h index 6104ef938..dcb7b72f8 100644 --- a/include/extern.h +++ b/include/extern.h @@ -1,4 +1,4 @@ -/* NetHack 3.7 extern.h $NHDT-Date: 1684138080 2023/05/15 08:08:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1263 $ */ +/* NetHack 3.7 extern.h $NHDT-Date: 1687036542 2023/06/17 21:15:42 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1275 $ */ /* Copyright (c) Steve Creps, 1988. */ /* NetHack may be freely redistributed. See license for details. */ @@ -2311,6 +2311,7 @@ extern void artitouch(struct obj *); extern boolean ok_to_quest(void); extern void leader_speaks(struct monst *); extern void nemesis_speaks(void); +extern void nemesis_stinks(coordxy, coordxy); extern void quest_chat(struct monst *); extern void quest_talk(struct monst *); extern void quest_stat_check(struct monst *); diff --git a/src/mon.c b/src/mon.c index 777041459..c8c3bb901 100644 --- a/src/mon.c +++ b/src/mon.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 mon.c $NHDT-Date: 1683831104 2023/05/11 18:51:44 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.501 $ */ +/* NetHack 3.7 mon.c $NHDT-Date: 1687036544 2023/06/17 21:15:44 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.509 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Derek S. Ray, 2015. */ /* NetHack may be freely redistributed. See license for details. */ @@ -2478,7 +2478,7 @@ m_detach( if (mtmp->mleashed) m_unleash(mtmp, FALSE); - if (mtmp->mx > 0 && emits_light(mptr)) + if (mx > 0 && emits_light(mptr)) del_light_source(LS_MONSTER, monst_to_any(mtmp)); /* @@ -2505,7 +2505,7 @@ m_detach( /* The Archeologist, Caveman, and Priest quest texts describe the nemesis's body creating noxious fumes/gas when killed. */ if (stinky_nemesis(mtmp)) - create_gas_cloud(mx, my, 5, 8); + nemesis_stinks(mx, my); } if (mtmp->data->msound == MS_LEADER) leaddead(); @@ -2759,12 +2759,6 @@ mondead(struct monst *mtmp) break; } } -#if 0 /* moved to m_detach() to kick in if mongone() happens */ - if (mtmp->iswiz) - wizdead(); - if (mtmp->data->msound == MS_NEMESIS) - nemdead(); -#endif if (mndx == PM_MEDUSA && gm.mvitals[mndx].died == 1) { record_achievement(ACH_MEDU); /* also generates a livelog event */ diff --git a/src/quest.c b/src/quest.c index c1029c263..cf72fdbb4 100644 --- a/src/quest.c +++ b/src/quest.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 quest.c $NHDT-Date: 1596498200 2020/08/03 23:43:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.29 $ */ +/* NetHack 3.7 quest.c $NHDT-Date: 1687036547 2023/06/17 21:15:47 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.38 $ */ /* Copyright 1991, M. Stephenson */ /* NetHack may be freely redistributed. See license for details. */ @@ -378,6 +378,22 @@ nemesis_speaks(void) qt_pager("discourage"); } +/* create cloud of stinking gas around dying nemesis */ +void +nemesis_stinks(coordxy mx, coordxy my) +{ + boolean save_mon_moving = gc.context.mon_moving; + + /* + * Some nemeses (determined by caller) release a cloud of noxious + * gas when they die. Don't make the hero be responsible for such + * a cloud even if hero has just killed nemesis. + */ + gc.context.mon_moving = TRUE; + create_gas_cloud(mx, my, 5, 8); + gc.context.mon_moving = save_mon_moving; +} + static void chat_with_guardian(void) { diff --git a/src/questpgr.c b/src/questpgr.c index 84415d833..88c8e504e 100644 --- a/src/questpgr.c +++ b/src/questpgr.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 questpgr.c $NHDT-Date: 1655065145 2022/06/12 20:19:05 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.79 $ */ +/* NetHack 3.7 questpgr.c $NHDT-Date: 1687036548 2023/06/17 21:15:48 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.82 $ */ /* Copyright 1991, M. Stephenson */ /* NetHack may be freely redistributed. See license for details. */ @@ -171,8 +171,8 @@ stinky_nemesis(struct monst *mon) (void) com_pager_core(gu.urole.filecode, "killed_nemesis", FALSE, &mesg); #endif - /* this is somewhat fragile; it assumes that when both (noxious or - poisonous or toxic) and (gas or fumes) are present, the latter + /* this is somewhat fragile; it assumes that when both {noxious or + poisonous or toxic} and {gas or fumes} are present, the latter refers to the former rather than to something unrelated; it does make sure that fumes occurs after noxious rather than before */ if (mesg) {