more /e /E

Discovered but covered engravings weren't being shown by /e and /E.
This commit is contained in:
PatR
2024-12-19 01:11:14 -08:00
parent 01e781fff3
commit 27a03ef75b

View File

@@ -2091,13 +2091,17 @@ look_engrs(boolean nearby)
char lookbuf[BUFSZ], outbuf[BUFSZ]; char lookbuf[BUFSZ], outbuf[BUFSZ];
coordxy x, y, lo_x, lo_y, hi_x, hi_y; coordxy x, y, lo_x, lo_y, hi_x, hi_y;
boolean is_headstone; boolean is_headstone;
nhsym sym;
int glyph, count = 0; int glyph, count = 0;
win = create_nhwindow(NHW_TEXT); win = create_nhwindow(NHW_TEXT);
look_region_nearby(&lo_x, &lo_y, &hi_x, &hi_y, nearby); look_region_nearby(&lo_x, &lo_y, &hi_x, &hi_y, nearby);
/*assert(lo_x >= 1 && lo_y >= 0 && hi_x < MAXCO && hi_y < MAXLI);*/
for (y = lo_y; y <= hi_y; y++) { for (y = lo_y; y <= hi_y; y++) {
for (x = lo_x; x <= hi_x; x++) { for (x = lo_x; x <= hi_x; x++) {
lookbuf[0] = '\0'; lookbuf[0] = '\0';
if (!levl[x][y].seenv)
continue;
/* this won't find remembered engravings which aren't there /* this won't find remembered engravings which aren't there
anymore (in case the hero is unaware that they're gone; anymore (in case the hero is unaware that they're gone;
scuffed away by monster movement or deleted during shop scuffed away by monster movement or deleted during shop
@@ -2105,7 +2109,6 @@ look_engrs(boolean nearby)
e = engr_at(x, y); e = engr_at(x, y);
if (!e) if (!e)
continue; continue;
glyph = glyph_at(x, y);
is_headstone = IS_GRAVE(svl.lastseentyp[x][y]); is_headstone = IS_GRAVE(svl.lastseentyp[x][y]);
Sprintf(lookbuf, " (%s", is_headstone ? "grave" : "engraving"); Sprintf(lookbuf, " (%s", is_headstone ? "grave" : "engraving");
(void) add_quoted_engraving(x, y, lookbuf, TRUE); (void) add_quoted_engraving(x, y, lookbuf, TRUE);
@@ -2119,18 +2122,18 @@ look_engrs(boolean nearby)
(void) strsubst(lookbuf, "(engraving ", "engraving "); (void) strsubst(lookbuf, "(engraving ", "engraving ");
} }
if (glyph_is_cmap(glyph) && !glyph_is_trap(glyph)) { glyph = glyph_at(x, y);
sym = glyph_is_cmap(glyph) ? glyph_to_cmap(glyph) : SYM_NOTHING;
if (is_cmap_engraving(sym) || sym == S_grave) {
/* engraving or grave+headstone shown on the map */ /* engraving or grave+headstone shown on the map */
++count; ++count;
} else if (e->eread || is_headstone) { } else {
/* engraving or grave covered by object(s) */ /* engraving or grave covered by object(s) */
Snprintf(eos(lookbuf), sizeof lookbuf - strlen(lookbuf), Snprintf(eos(lookbuf), sizeof lookbuf - strlen(lookbuf),
", obscured by %s", encglyph(glyph)); ", obscured by %s", encglyph(glyph));
glyph = is_headstone ? cmap_to_glyph(S_grave) glyph = is_headstone ? cmap_to_glyph(S_grave)
: engraving_to_glyph(e); : engraving_to_glyph(e);
++count; ++count;
} else {
continue;
} }
if (*lookbuf) { /* (redundant) */ if (*lookbuf) { /* (redundant) */
char coordbuf[20], cmode; char coordbuf[20], cmode;