diff --git a/src/dog.c b/src/dog.c index 12b39409f..f292140da 100644 --- a/src/dog.c +++ b/src/dog.c @@ -965,17 +965,11 @@ dogfood(struct monst *mon, struct obj *obj) || (acidic(fptr) && !resists_acid(mon)) || (poisonous(fptr) && !resists_poison(mon))) return POISON; - /* polymorphing is preferable to starvation, and pet might also - want to take its chances on that if they've been mistreated */ - else if (is_shapeshifter(fptr)) { - if (mon->mtame == 1) { - /* A herbivore still won't eat a nonvegan corpse, but - in any other circumstance a pet with tameness 1 will - happily eat a shapeshifter. */ - return (herbi && !vegan(fptr)) ? MANFOOD : CADAVER; - } - return starving ? ACCFOOD : MANFOOD; - } else if (vegan(fptr)) + /* avoid polymorph unless starving or abused (in which case the + pet will consider it for a chance to become more powerful) */ + else if (is_shapeshifter(fptr) && mon->mtame > 1 && !starving) + return MANFOOD; + else if (vegan(fptr)) return herbi ? CADAVER : MANFOOD; /* most humanoids will avoid cannibalism unless starving; arbitrary: elves won't eat other elves even then */