Fix mention_walls distinguishing unseen walls from solid stone

Bumping into an unseen wall reported "a wall" instead of "solid stone",
even though you could not know it was a wall when looking at it.

Use the same method when looking at glyphs on the map instead of
the map location type.

Fixes #318
This commit is contained in:
Pasi Kallinen
2022-02-04 14:02:18 +02:00
parent 5204eef9c0
commit 8f7f598050
2 changed files with 15 additions and 5 deletions
+1
View File
@@ -765,6 +765,7 @@ falling down a hole or trapdoor will cause damage proportional to fall height
stinking gas clouds block line-of-sight stinking gas clouds block line-of-sight
covetous monsters will teleport to downstairs or upstairs to heal covetous monsters will teleport to downstairs or upstairs to heal
have fake player monsters use verbalize instead of pline when reacting to chat have fake player monsters use verbalize instead of pline when reacting to chat
fix mention_walls distinguishing unseen walls from solid stone
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
+14 -5
View File
@@ -876,11 +876,20 @@ test_move(int ux, int uy, int dx, int dy, int mode)
else if (Passes_walls && !may_passwall(x, y) else if (Passes_walls && !may_passwall(x, y)
&& In_sokoban(&u.uz)) && In_sokoban(&u.uz))
pline_The("Sokoban walls resist your ability."); pline_The("Sokoban walls resist your ability.");
else if (flags.mention_walls) else if (flags.mention_walls) {
pline("It's %s.", char buf[BUFSZ];
(IS_WALL(tmpr->typ) || tmpr->typ == SDOOR) ? "a wall" coord cc;
: IS_TREE(tmpr->typ) ? "a tree" int sym = 0;
: "solid stone"); const char *firstmatch = 0;
cc.x = x, cc.y = y;
do_screen_description(cc, TRUE, sym, buf, &firstmatch, NULL);
if (!strcmp(firstmatch, "stone"))
Sprintf(buf, "solid stone");
else
Sprintf(buf, "%s", an(firstmatch));
pline("It's %s.", buf);
}
} }
return FALSE; return FALSE;
} }