expanded-glyphs follow-up: altars

This commit is contained in:
nhmall
2021-09-22 12:01:21 -04:00
parent 7a7550f538
commit 6c54158180
3 changed files with 26 additions and 11 deletions

View File

@@ -458,17 +458,17 @@ enum glyph_offsets {
(((mon)->female == 0) ? GLYPH_PET_MALE_OFF : GLYPH_PET_FEM_OFF))
#define altar_to_glyph(amsk) \
(((amsk & AM_NONE) == AM_NONE) \
? (GLYPH_ALTAR_OFF + 0) \
: ((amsk & AM_CHAOTIC) == AM_CHAOTIC) \
? (GLYPH_ALTAR_OFF + 1) \
: ((amsk & AM_NEUTRAL) == AM_NEUTRAL) \
? (GLYPH_ALTAR_OFF + 2) \
: ((amsk & AM_NEUTRAL) == AM_LAWFUL) \
? (GLYPH_ALTAR_OFF + 3) \
: ((amsk & AM_NEUTRAL) == AM_SHRINE) \
? (GLYPH_ALTAR_OFF + 4) \
: (GLYPH_ALTAR_OFF + 2))
(((amsk & (AM_MASK | AM_SHRINE)) == AM_NONE) \
? (GLYPH_ALTAR_OFF + 0) \
: ((amsk & (AM_MASK | AM_SHRINE)) == AM_CHAOTIC) \
? (GLYPH_ALTAR_OFF + 1) \
: ((amsk & (AM_MASK | AM_SHRINE)) == AM_NEUTRAL) \
? (GLYPH_ALTAR_OFF + 2) \
: ((amsk & (AM_MASK | AM_SHRINE)) == AM_LAWFUL) \
? (GLYPH_ALTAR_OFF + 3) \
: ((amsk & AM_SHRINE) == AM_SHRINE) \
? (GLYPH_ALTAR_OFF + 4) \
: (GLYPH_ALTAR_OFF + 2))
/* not used, nor is it correct
#define zap_to_glyph(zaptype, cmap_idx) \

View File

@@ -342,6 +342,7 @@ extern int wiz_debug_cmd_bury(void);
/* ### display.c ### */
extern void magic_map_background(xchar, xchar, int);
static void map_altar(xchar, xchar, int);
extern void map_background(xchar, xchar, int);
extern void map_trap(struct trap *, int);
extern void map_object(struct obj *, int);

View File

@@ -370,6 +370,18 @@ show_mon_or_warn(int x, int y, int monglyph)
show_glyph(x, y, monglyph);
}
/*
* map_altar(x, y, amsk)
*/
void
map_altar(xchar x, xchar y, int amsk)
{
int glyph = altar_to_glyph(amsk);
if (g.level.flags.hero_memory)
levl[x][y].glyph = glyph;
show_glyph(x, y, glyph);
}
#define DETECTED 2
#define PHYSICALLY_SEEN 1
#define is_worm_tail(mon) ((mon) && ((x != (mon)->mx) || (y != (mon)->my)))
@@ -825,6 +837,8 @@ newsym(register int x, register int y)
display_warning(mon);
} else if (glyph_is_invisible(lev->glyph)) {
map_invisible(x, y);
} else if (IS_ALTAR(levl[x][y].typ)) {
map_altar(x, y, levl[x][y].altarmask);
} else
_map_location(x, y, 1); /* map the location */\
}