diff --git a/src/mon.c b/src/mon.c index d29303b90..7e20de0a7 100644 --- a/src/mon.c +++ b/src/mon.c @@ -1813,8 +1813,7 @@ mfndpos( nodiag = NODIAG(mdat - mons); wantpool = (mdat->mlet == S_EEL); - poolok = ((!Is_waterlevel(&u.uz) && IS_WATERWALL(nowtyp) - && !grounded(mdat)) + poolok = ((!Is_waterlevel(&u.uz) && !grounded(mdat)) || (is_swimmer(mdat) && !wantpool)); /* note: floating eye is the only is_floater() so this could be simplified, but then adding another floater would be error prone */ @@ -1866,6 +1865,8 @@ mfndpos( && !((flag & ALLOW_WALL) && may_passwall(nx, ny)) && !((IS_TREE(ntyp) ? treeok : rockok) && may_dig(nx, ny))) continue; + if (IS_WATERWALL(ntyp) && !is_swimmer(mdat)) + continue; /* KMH -- Added iron bars */ if (ntyp == IRONBARS && (!(flag & ALLOW_BARS)