]> granicus.if.org Git - nethack/commit
steed vs "no monster to remove"
authorPatR <rankin@nethack.org>
Thu, 29 Nov 2018 20:15:14 +0000 (12:15 -0800)
committerPatR <rankin@nethack.org>
Thu, 29 Nov 2018 20:15:14 +0000 (12:15 -0800)
commitbe327d9822a17823a86553bb33d414ba56522fd4
treecc3564a33a5f3c5058fa8dbe3fa9248806d1eebe
parent4ab1c12f030ef1f2f767152cde649e3ee4f3bbf8
steed vs "no monster to remove"

Noticed whlie testing the steed-in-pit fix.  The EXTRA_SANITY_CHECKS
for remove_monster() are being tripped if riding hero has steed killed
out from under him because the steed is not on the map.  This started
out simple but got a bit complicated.  It seems to be sufficient but
I'm not very confident about it.

Being engulfed while mounted gave "placing monster over another?" due
to a change made along with EXTRA_SANITY_CHECKS but not conditional on
it.  (The change was to issue a warning about an actual problem which
was previously undiagnosed.)  I think bumping the engulfer off the map
in favor of the former steed only worked because some u.uswallow code
eventually used the hero's location to put the engulfer back.  I didn't
pursue that to try to figure what really happened, just prevent it.

The DISMOUNT_BONES handling was being executed even if the steed was
dead.  DISMOUNT_BONES only happens if the hero is dead.  Since I don't
know whether it's possible for dead hero and dead steed to happen at
the same time, move it inside the steed-not-dead block just in case.
doc/fixes36.2
src/steed.c