fix issue #1256 - no_of_wizards incorrect \
if Wizard escapes the dungeon Reported by vultur-cadens: a fix to prevent quest feedback when quest nemesis is removed from the game during bones creation introduced a regression for an earlier fix that kept context.no_of_wizards up to date if the Wizard of Yendor escapes the dungeon without dying. Change 'wizdead()' to 'wizdeadorgone()' and call it from m_detach() for mongone() as well as for mondead(). Fixes #1256
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 mon.c $NHDT-Date: 1717570485 2024/06/05 06:54:45 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.573 $ */
|
||||
/* NetHack 3.7 mon.c $NHDT-Date: 1718303201 2024/06/13 18:26:41 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.576 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -2678,13 +2678,15 @@ m_detach(
|
||||
mon_leaving_level(mtmp);
|
||||
|
||||
mtmp->mhp = 0; /* simplify some tests: force mhp to 0 */
|
||||
/* death handling for the Wizard needs to take place even if he is
|
||||
leaving the dungeon alive rather than dying */
|
||||
if (mtmp->iswiz)
|
||||
wizdeadorgone();
|
||||
/* foodead() might give quest feedback for foo having died; skip that
|
||||
if we're called for mongone() rather than mondead(); saving bones
|
||||
or wizard mode genocide of "*" can result in special monsters going
|
||||
away without having been killed */
|
||||
if (due_to_death) {
|
||||
if (mtmp->iswiz)
|
||||
wizdead();
|
||||
if (mtmp->data->msound == MS_NEMESIS) {
|
||||
nemdead();
|
||||
/* The Archeologist, Caveman, and Priest quest texts describe
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 spell.c $NHDT-Date: 1715984438 2024/05/17 22:20:38 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.169 $ */
|
||||
/* NetHack 3.7 spell.c $NHDT-Date: 1718303203 2024/06/13 18:26:43 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.171 $ */
|
||||
/* Copyright (c) M. Stephenson 1988 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -283,8 +283,7 @@ deadbook(struct obj *book2)
|
||||
are not artifacts */
|
||||
pline("At least one of your relics is cursed...");
|
||||
} else if (arti1_primed && arti2_primed) {
|
||||
unsigned soon =
|
||||
(unsigned) d(2, 6); /* time til next intervene() */
|
||||
unsigned soon = (unsigned) d(2, 6); /* time til next intervene() */
|
||||
|
||||
/* successful invocation */
|
||||
mkinvokearea();
|
||||
@@ -292,7 +291,7 @@ deadbook(struct obj *book2)
|
||||
record_achievement(ACH_INVK);
|
||||
/* in case you haven't killed the Wizard yet, behave as if
|
||||
you just did */
|
||||
u.uevent.udemigod = 1; /* wizdead() */
|
||||
u.uevent.udemigod = 1; /* wizdeadorgone() */
|
||||
if (!u.udg_cnt || u.udg_cnt > soon)
|
||||
u.udg_cnt = soon;
|
||||
} else { /* at least one relic not prepared properly */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 wizard.c $NHDT-Date: 1705357487 2024/01/15 22:24:47 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.105 $ */
|
||||
/* NetHack 3.7 wizard.c $NHDT-Date: 1718303204 2024/06/13 18:26:44 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.110 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2016. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -793,8 +793,10 @@ intervene(void)
|
||||
}
|
||||
}
|
||||
|
||||
/* Wizard of Yendor is being removed from play (dead or escaped the dungeon);
|
||||
keep the bookkeeping for him up to date */
|
||||
void
|
||||
wizdead(void)
|
||||
wizdeadorgone(void)
|
||||
{
|
||||
gc.context.no_of_wizards--;
|
||||
if (!u.uevent.udemigod) {
|
||||
|
||||
Reference in New Issue
Block a user