Use could_reach_item

This commit is contained in:
Pasi Kallinen
2023-01-31 19:09:43 +02:00
parent 97d7a735a4
commit 4ccee5a177
3 changed files with 3 additions and 4 deletions

View File

@@ -620,6 +620,7 @@ extern struct obj *droppables(struct monst *);
extern int dog_nutrition(struct monst *, struct obj *);
extern int dog_eat(struct monst *, struct obj *, coordxy, coordxy, boolean);
extern int dog_move(struct monst *, int);
extern boolean could_reach_item(struct monst *, coordxy, coordxy);
extern void finish_meating(struct monst *);
extern void quickmimic(struct monst *);

View File

@@ -22,7 +22,6 @@ static int pet_ranged_attk(struct monst *);
static long score_targ(struct monst *, struct monst *);
static boolean can_reach_location(struct monst *, coordxy, coordxy, coordxy,
coordxy);
static boolean could_reach_item(struct monst *, coordxy, coordxy);
/* pick a carried item for pet to drop */
struct obj *
@@ -1290,7 +1289,7 @@ dog_move(register struct monst *mtmp,
}
/* check if a monster could pick up objects from a location */
static boolean
boolean
could_reach_item(struct monst *mon, coordxy nx, coordxy ny)
{
if ((!is_pool(nx, ny) || is_swimmer(mon->data))

View File

@@ -1319,8 +1319,7 @@ m_move(register struct monst* mtmp, register int after)
water location accepts flyers, but they can't reach
underwater objects, so being able to move to a spot
is insufficient for deciding whether to do so */
if ((is_pool(xx, yy) && !is_swimmer(ptr))
|| (is_lava(xx, yy) && !likes_lava(ptr)))
if (!could_reach_item(mtmp, xx, yy))
continue;
/* ignore obj if there's a trap and monster knows it */