detecting chest and door traps
When confused gold detection finds a door trap or a chest trap, it puts a bear trap glyph/tile on the map at that location. (They disappear once they're within sight.) Those should be given their own glyphs so that they can have their own tiles, but this doesn't do that. What it does do is describe such fake bear traps as "trapped door" or "trapped chest" when examined with far-look. The '^' command--if used while blind so that '^' hasn't disappeared yet--needs to catch up: it says "I can't see a trap there" when the adjacent '^' is a fake bear trap.
This commit is contained in:
12
src/pager.c
12
src/pager.c
@@ -379,7 +379,17 @@ char *buf, *monbuf;
|
||||
} else if (glyph_is_trap(glyph)) {
|
||||
int tnum = what_trap(glyph_to_trap(glyph));
|
||||
|
||||
Strcpy(buf, defsyms[trap_to_defsym(tnum)].explanation);
|
||||
/* Trap detection displays a bear trap at locations having
|
||||
* a trapped door or trapped container or both.
|
||||
* TODO: we should create actual trap types for doors and
|
||||
* chests so that they can have their own glyphs and tiles.
|
||||
*/
|
||||
if (trapped_chest_at(tnum, x, y))
|
||||
Strcpy(buf, "trapped chest"); /* might actually be a large box */
|
||||
else if (trapped_door_at(tnum, x, y))
|
||||
Strcpy(buf, "trapped door"); /* not "trap door"... */
|
||||
else
|
||||
Strcpy(buf, defsyms[trap_to_defsym(tnum)].explanation);
|
||||
} else if (glyph_is_warning(glyph)) {
|
||||
int warnindx = glyph_to_warning(glyph);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user