diff --git a/src/mon.c b/src/mon.c index 9cd977080..050d341d6 100644 --- a/src/mon.c +++ b/src/mon.c @@ -400,6 +400,12 @@ register struct monst *mtmp; if (cansee(mtmp->mx,mtmp->my)) { pline("%s drowns.", Monnam(mtmp)); } + if (u.ustuck && u.uswallow && u.ustuck == mtmp) { + /* This can happen after a purple worm plucks you off a + flying steed while you are over water. */ + pline("%s sinks as water rushes in and flushes you out.", + Monnam(mtmp)); + } mondead(mtmp); if (mtmp->mhp > 0) { rloc(mtmp); diff --git a/src/steed.c b/src/steed.c index 9ad44b267..791b61f97 100644 --- a/src/steed.c +++ b/src/steed.c @@ -588,14 +588,14 @@ dismount_steed(reason) } /* Return the player to the floor */ + if (reason != DISMOUNT_ENGULFED) { in_steed_dismounting = TRUE; (void) float_down(0L, W_SADDLE); in_steed_dismounting = FALSE; flags.botl = 1; - if (reason != DISMOUNT_ENGULFED) { - (void)encumber_msg(); - vision_full_recalc = 1; - } + (void)encumber_msg(); + vision_full_recalc = 1; + } else flags.botl = 1; return; }