diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index 82f04195b..3ff27b35a 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -882,6 +882,7 @@ putting objects into a container with menustyle=traditional and then taking bit being set if sanity_check was On when drinking or dipping, allow the 'm' prefix to be used to skip asking about fountains and pools +calling real or fake Amulet something could give away information about them Fixes to 3.7.0-x Problems that Were Exposed Via git Repository diff --git a/src/do_name.c b/src/do_name.c index 66f124ae3..d44d50512 100644 --- a/src/do_name.c +++ b/src/do_name.c @@ -1365,11 +1365,21 @@ objtyp_is_callable(int i) return TRUE; switch(objects[i].oc_class) { + case AMULET_CLASS: + /* 3.7: calling these used to be allowed but that enabled the + player to tell whether two unID'd amulets of yendor were both + fake or one was real by calling them distinct names and then + checking discoveries to see whether first name was replaced + by second or both names stuck; with more than two available + to work with, if they weren't all fake it was possible to + determine which one was the real one */ + if (i == AMULET_OF_YENDOR || i == FAKE_AMULET_OF_YENDOR) + break; /* return FALSE */ + /*FALLTHRU*/ case SCROLL_CLASS: case POTION_CLASS: case WAND_CLASS: case RING_CLASS: - case AMULET_CLASS: case GEM_CLASS: case SPBOOK_CLASS: case ARMOR_CLASS: diff --git a/src/invent.c b/src/invent.c index 48f8e0490..954c0792f 100644 --- a/src/invent.c +++ b/src/invent.c @@ -1834,6 +1834,13 @@ silly_thing(const char *word, !(is_plural(otmp) || pair_of(otmp)) ? "that" : "those", s3); else #endif + /* see comment about Amulet of Yendor in objtyp_is_callable(do_name.c); + known fakes yield the silly thing feedback */ + if (!strcmp(word, "call") + && (otmp->otyp == AMULET_OF_YENDOR + || (otmp->otyp == FAKE_AMULET_OF_YENDOR && !otmp->known))) + pline_The("Amulet doesn't like being called names."); + else pline(silly_thing_to, word); }