From: PatR Date: Wed, 30 Dec 2015 10:33:42 +0000 (-0800) Subject: fix #H4147 - "unlockable chest" desc is misleading X-Git-Tag: NetHack-3.6.1_RC01~1095 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=da0876482e7778d63c4ed359aca14d1c1ed61556;p=nethack fix #H4147 - "unlockable chest" desc is misleading Change "unlockable" to "broken" so that it won't be misunderstood to mean "capable of being unlocked". The accompanying suggestion to omit "broken" unless/until a lock or unlock attempt is made is no good since the main reason for describing the broken lock is to avoid unnecessary attempts to lock or unlock a container that the hero knows to be broken but the player may have forgotten. I also changed remote look-at for objects to use distant_name(doname) instead of distant_name(xname) so that qualifiers like "empty" and "broken" will show up on chests you've investigated before but aren't standing on now. Monster type for corpse also gets shown, instead of just 'food (corpse)'. Other remote items will become more verbose, but only those that the hero has already seen up close. --- diff --git a/doc/fixes36.1 b/doc/fixes36.1 index 5465960ad..0ae0d278d 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -72,6 +72,9 @@ alter name of monster causing hero's death if name contains characters that could cause confusion when using record, logfile, or xlogfile later teleporting or polymorphing a sink via ring drop shouldn't depend upon being able to see it happen +change "unlockable chest" to "broken chest" so that it won't be misunderstood + ("capable of being unlocked" vs intended "not capable of being locked") +use doname instead of xname when using '/' or ';' to look at objects on map Platform- and/or Interface-Specific Fixes diff --git a/src/objnam.c b/src/objnam.c index e6ca04521..8c94eed15 100644 --- a/src/objnam.c +++ b/src/objnam.c @@ -828,7 +828,10 @@ boolean with_price; if (lknown && Is_box(obj)) { if (obj->obroken) - Strcat(prefix, "unlockable "); + /* 3.6.0 used "unlockable" here but that could be misunderstood + to mean "capable of being unlocked" rather than the intended + "not capable of being locked" */ + Strcat(prefix, "broken "); else if (obj->olocked) Strcat(prefix, "locked "); else diff --git a/src/pager.c b/src/pager.c index 0664bef5e..8157bce8e 100644 --- a/src/pager.c +++ b/src/pager.c @@ -127,7 +127,7 @@ int x, y, glyph; if (otmp) { Strcpy(buf, (otmp->otyp != STRANGE_OBJECT) - ? distant_name(otmp, xname) + ? distant_name(otmp, doname) : obj_descr[STRANGE_OBJECT].oc_name); if (fakeobj) dealloc_obj(otmp), otmp = 0;