Use could_reach_item
This commit is contained in:
@@ -620,6 +620,7 @@ extern struct obj *droppables(struct monst *);
|
|||||||
extern int dog_nutrition(struct monst *, struct obj *);
|
extern int dog_nutrition(struct monst *, struct obj *);
|
||||||
extern int dog_eat(struct monst *, struct obj *, coordxy, coordxy, boolean);
|
extern int dog_eat(struct monst *, struct obj *, coordxy, coordxy, boolean);
|
||||||
extern int dog_move(struct monst *, int);
|
extern int dog_move(struct monst *, int);
|
||||||
|
extern boolean could_reach_item(struct monst *, coordxy, coordxy);
|
||||||
extern void finish_meating(struct monst *);
|
extern void finish_meating(struct monst *);
|
||||||
extern void quickmimic(struct monst *);
|
extern void quickmimic(struct monst *);
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ static int pet_ranged_attk(struct monst *);
|
|||||||
static long score_targ(struct monst *, struct monst *);
|
static long score_targ(struct monst *, struct monst *);
|
||||||
static boolean can_reach_location(struct monst *, coordxy, coordxy, coordxy,
|
static boolean can_reach_location(struct monst *, coordxy, coordxy, coordxy,
|
||||||
coordxy);
|
coordxy);
|
||||||
static boolean could_reach_item(struct monst *, coordxy, coordxy);
|
|
||||||
|
|
||||||
/* pick a carried item for pet to drop */
|
/* pick a carried item for pet to drop */
|
||||||
struct obj *
|
struct obj *
|
||||||
@@ -1290,7 +1289,7 @@ dog_move(register struct monst *mtmp,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* check if a monster could pick up objects from a location */
|
/* check if a monster could pick up objects from a location */
|
||||||
static boolean
|
boolean
|
||||||
could_reach_item(struct monst *mon, coordxy nx, coordxy ny)
|
could_reach_item(struct monst *mon, coordxy nx, coordxy ny)
|
||||||
{
|
{
|
||||||
if ((!is_pool(nx, ny) || is_swimmer(mon->data))
|
if ((!is_pool(nx, ny) || is_swimmer(mon->data))
|
||||||
|
|||||||
@@ -1319,8 +1319,7 @@ m_move(register struct monst* mtmp, register int after)
|
|||||||
water location accepts flyers, but they can't reach
|
water location accepts flyers, but they can't reach
|
||||||
underwater objects, so being able to move to a spot
|
underwater objects, so being able to move to a spot
|
||||||
is insufficient for deciding whether to do so */
|
is insufficient for deciding whether to do so */
|
||||||
if ((is_pool(xx, yy) && !is_swimmer(ptr))
|
if (!could_reach_item(mtmp, xx, yy))
|
||||||
|| (is_lava(xx, yy) && !likes_lava(ptr)))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* ignore obj if there's a trap and monster knows it */
|
/* ignore obj if there's a trap and monster knows it */
|
||||||
|
|||||||
Reference in New Issue
Block a user