fix Rider revival without corpse removal

Reported directly to devteam:  when a Rider revived, its corpse
didn't get used up.

The change to have delobj() never destroy Rider corpses, like it
won't destroy the Amulet or invocation items, didn't take into
account that they should be destroyed when Riders revive from them.
Add delobj_core() to be able to do that without changing existing
delobj() usage.

I'm surprised hardfought players haven't been all over this one.
This commit is contained in:
PatR
2022-04-24 15:20:45 -07:00
parent 2708d3b330
commit aaace54816
4 changed files with 21 additions and 8 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.7 zap.c $NHDT-Date: 1646870848 2022/03/10 00:07:28 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.402 $ */
/* NetHack 3.7 zap.c $NHDT-Date: 1650838839 2022/04/24 22:20:39 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.408 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
@@ -993,7 +993,7 @@ revive(struct obj *corpse, boolean by_hero)
/* not useupf(), which charges */
if (corpse->quan > 1L)
corpse = splitobj(corpse, 1L);
delobj(corpse);
delobj_core(corpse, TRUE);
newsym(x, y);
break;
case OBJ_MINVENT: