diff --git a/src/mon.c b/src/mon.c index a7f45c4f6..718b4def4 100644 --- a/src/mon.c +++ b/src/mon.c @@ -4067,18 +4067,18 @@ restrap(struct monst *mtmp) return FALSE; } -/* reveal a monster at x,y hiding under an object, - if there are no objects there */ +/* reveal a hiding monster at x,y, either under nonexistent object, + or an eel out of water. */ void maybe_unhide_at(coordxy x, coordxy y) { struct monst *mtmp; - if (OBJ_AT(x, y)) - return; if ((mtmp = m_at(x, y)) == 0 && u_at(x, y)) mtmp = &gy.youmonst; - if (mtmp && mtmp->mundetected && hides_under(mtmp->data)) + if (mtmp && mtmp->mundetected + && ((hides_under(mtmp->data) && !OBJ_AT(x, y)) + || (mtmp->data->mlet == S_EEL && !is_pool(x, y)))) (void) hideunder(mtmp); }