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:
PatR
2024-06-13 12:18:17 -07:00
parent 30d2eeea41
commit 24e06171db
5 changed files with 18 additions and 12 deletions

View File

@@ -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