]> granicus.if.org Git - nethack/commitdiff
fix #H8310 - riding a saddled tripe ration
authorPatR <rankin@nethack.org>
Sat, 2 Mar 2019 02:32:41 +0000 (18:32 -0800)
committerPatR <rankin@nethack.org>
Sat, 2 Mar 2019 02:32:41 +0000 (18:32 -0800)
If steed ate a mimic corpse and started mimicking an object or dungeon
furniture, the hero was able to keep riding.  Force a dismount when
that happens, even if steed takes on monster shape rather than object
or furniture.  After that, #ride to remount non-monster will fail
unless using wizard mode's "force mount to succeed" action, in which
case steed's eating finishes immediately and it returns to normal.

This doesn't address the older report that mounted hero can continue
to move around while the steed is eating.

doc/fixes36.2
src/dogmove.c

index 621a2a910a1e9f840c46f67f7552060b2f0ee4eb..1d3e8511c642cd76e51d50e3c86da9b446f25bdd 100644 (file)
@@ -1,4 +1,4 @@
-$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.267 $ $NHDT-Date: 1551395521 2019/02/28 23:12:01 $
+$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.268 $ $NHDT-Date: 1551493951 2019/03/02 02:32:31 $
 
 This fixes36.2 file is here to capture information about updates in the 3.6.x
 lineage following the release of 3.6.1 in April 2018. Please note, however,
@@ -387,6 +387,8 @@ toggling perm_invent on didn't immediately show persistent inventory window
 some fish should lay their eggs in the water rather than on land
 wand or spell of undead turning handled messages and wand-discovery in a
        non-intuitive manner biased toward healers
+if steed ate a mimic corpse and began masquerading as something, hero could
+       keep riding it; force dismount
 
 
 Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
index 1c8f4dd798dfcc613a08d196d8a2482bf21c4b02..604877103971b686cb37e6b2d27448d636ae6404 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 dogmove.c       $NHDT-Date: 1502753407 2017/08/14 23:30:07 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.63 $ */
+/* NetHack 3.6 dogmove.c       $NHDT-Date: 1551493951 2019/03/02 02:32:31 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.72 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Robert Patrick Rankin, 2012. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -1379,6 +1379,15 @@ struct monst *mtmp;
     if (Protection_from_shape_changers || !mtmp->meating)
         return;
 
+    /* with polymorph, the steed's equipment would be re-checked and its
+       saddle would come off, triggering DISMOUNT_FELL, but mimicking
+       doesn't impact monster's equipment; normally DISMOUNT_POLY is for
+       rider taking on an unsuitable shape, but its message works fine
+       for this and also avoids inflicting damage during forced dismount;
+       do this before changing so that dismount refers to original shape */
+    if (mtmp == u.usteed)
+        dismount_steed(DISMOUNT_POLY);
+
     do {
         idx = rn2(SIZE(qm));
         if (qm[idx].mndx != 0 && monsndx(mtmp->data) == qm[idx].mndx)