fix add_to_minv panic when aklys kills enfulger

Reported directly to devteam rather than via the web contact form:
throwing wielded aklys while swallowed would hit the engulfer and
return to the hero's hand but leave a stale 'thrownobj' pointer if
the monster survived.  Under usual circumstances, throwing anything
else or throwing the aklys again when not engulfed would clear that
pointer, putting things back to normal.  However, killing any engulfer
with the same weapon would try to add it to engulfer's inventory to
be dropped as it died.  If the killing blow was via melee rather than
another throw, the object in question would still be in hero's
inventory instead of free, hence panic.

The initial returning-aklys implementation shared Mjollnir's code
which doesn't have this issue.  This reverts from having attached
aklys always returning successfully when thrown while swallowed to
Mjollnir's 99% chance of return and 99% to be caught when it does
come back.  (That was already the case if the engulfer was killed by
the throw, where hero wasn't swallowed anymore after the damage was
inflicted.)
This commit is contained in:
PatR
2019-09-23 15:16:39 -07:00
parent bd26d2edbe
commit 348f968132
4 changed files with 62 additions and 52 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.115 $ $NHDT-Date: 1569189769 2019/09/22 22:02:49 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.116 $ $NHDT-Date: 1569276988 2019/09/23 22:16:28 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -149,6 +149,9 @@ zapping self with wand of opening or spell of knock to escape from a trap
reported "you're released from <trap>" rather than "from the <trap>"
zapping self with wand of opening or spell of knock to escape from a pit trap
didn't reset vision limits--only spots adjacent to pit were visible
wielded aklys that returned to hero when thrown while inside an engulfer left
a stale 'thrownobj' pointer that triggered "add_to_minv: obj not free"
panic if same weapon killed any engulfer via melee from inside
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository