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.
This commit is contained in:
PatR
2015-12-30 02:33:42 -08:00
parent 5964438e8f
commit da0876482e
3 changed files with 8 additions and 2 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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;