-NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.526 $ $NHDT-Date: 1620348705 2021/05/07 00:51:45 $
+NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.527 $ $NHDT-Date: 1620413928 2021/05/07 18:58:48 $
General Fixes and Modified Features
-----------------------------------
nutrition that <foo> zombie, oeaten_stat() could give the warning
"partly eaten food more nutritious than untouched food" when used to
calculate zombie's hit points (depended upon how much had been eaten)
+undead turning magic revived corpses flagged as no-revive if they were being
+ carried but not if they were zapped while on the floor
curses: 'msg_window' option wasn't functional for curses unless the binary
also included tty support
-/* NetHack 3.7 zap.c $NHDT-Date: 1596498233 2020/08/03 23:43:53 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.346 $ */
+/* NetHack 3.7 zap.c $NHDT-Date: 1620413928 2021/05/07 18:58:48 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.360 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
} else if (obj->otyp == CORPSE) {
struct monst *mtmp;
xchar ox, oy;
+ unsigned save_norevive;
boolean by_u = !g.context.mon_moving;
int corpsenm = corpse_revive_type(obj);
char *corpsname = cxname_singular(obj);
if (!get_obj_location(obj, &ox, &oy, 0))
ox = obj->ox, oy = obj->oy; /* won't happen */
+ /* explicit revival magic overrides timer-based no-revive */
+ save_norevive = obj->norevive;
+ obj->norevive = 0;
+
mtmp = revive(obj, TRUE);
if (!mtmp) {
+ obj->norevive = save_norevive;
res = 0; /* no monster implies corpse was left intact */
} else {
if (cansee(ox, oy)) {