From: Patric Mueller Date: Mon, 17 Feb 2020 09:27:38 +0000 (+0100) Subject: Stop monsters from interacting with protected items on the floor X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4b270099ecbd6745e8c23279727d8a0a584ec344;p=nethack Stop monsters from interacting with protected items on the floor This fixes the issue of chests with the wand of wishing on the castle level being stolen by soldiers. Commit b12ea03d1 revealed that searches_for_item() didn't check for onscary() and allowed monsters to pick up items even though they were protected by a scroll of scare monsters. --- diff --git a/src/muse.c b/src/muse.c index ab5f41668..0d3847c76 100644 --- a/src/muse.c +++ b/src/muse.c @@ -2174,6 +2174,13 @@ struct obj *obj; { int typ = obj->otyp; + /* don't let monsters interact with protected items on the floor */ + if ((obj->where == OBJ_FLOOR) + && (obj->ox == mon->mx) && (obj->oy == mon->my) + && onscary(obj->ox, obj->oy, mon)) { + return FALSE; + } + if (is_animal(mon->data) || mindless(mon->data) || mon->data == &mons[PM_GHOST]) /* don't loot bones piles */ return FALSE;