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
+11 -11
View File
@@ -458,17 +458,17 @@ enum glyph_offsets {
(((mon)->female == 0) ? GLYPH_PET_MALE_OFF : GLYPH_PET_FEM_OFF)) (((mon)->female == 0) ? GLYPH_PET_MALE_OFF : GLYPH_PET_FEM_OFF))
#define altar_to_glyph(amsk) \ #define altar_to_glyph(amsk) \
(((amsk & AM_NONE) == AM_NONE) \ (((amsk & (AM_MASK | AM_SHRINE)) == AM_NONE) \
? (GLYPH_ALTAR_OFF + 0) \ ? (GLYPH_ALTAR_OFF + 0) \
: ((amsk & AM_CHAOTIC) == AM_CHAOTIC) \ : ((amsk & (AM_MASK | AM_SHRINE)) == AM_CHAOTIC) \
? (GLYPH_ALTAR_OFF + 1) \ ? (GLYPH_ALTAR_OFF + 1) \
: ((amsk & AM_NEUTRAL) == AM_NEUTRAL) \ : ((amsk & (AM_MASK | AM_SHRINE)) == AM_NEUTRAL) \
? (GLYPH_ALTAR_OFF + 2) \ ? (GLYPH_ALTAR_OFF + 2) \
: ((amsk & AM_NEUTRAL) == AM_LAWFUL) \ : ((amsk & (AM_MASK | AM_SHRINE)) == AM_LAWFUL) \
? (GLYPH_ALTAR_OFF + 3) \ ? (GLYPH_ALTAR_OFF + 3) \
: ((amsk & AM_NEUTRAL) == AM_SHRINE) \ : ((amsk & AM_SHRINE) == AM_SHRINE) \
? (GLYPH_ALTAR_OFF + 4) \ ? (GLYPH_ALTAR_OFF + 4) \
: (GLYPH_ALTAR_OFF + 2)) : (GLYPH_ALTAR_OFF + 2))
/* not used, nor is it correct /* not used, nor is it correct
#define zap_to_glyph(zaptype, cmap_idx) \ #define zap_to_glyph(zaptype, cmap_idx) \
+1
View File
@@ -342,6 +342,7 @@ extern int wiz_debug_cmd_bury(void);
/* ### display.c ### */ /* ### display.c ### */
extern void magic_map_background(xchar, xchar, int); 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_background(xchar, xchar, int);
extern void map_trap(struct trap *, int); extern void map_trap(struct trap *, int);
extern void map_object(struct obj *, int); extern void map_object(struct obj *, int);
+14
View File
@@ -370,6 +370,18 @@ show_mon_or_warn(int x, int y, int monglyph)
show_glyph(x, y, 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 DETECTED 2
#define PHYSICALLY_SEEN 1 #define PHYSICALLY_SEEN 1
#define is_worm_tail(mon) ((mon) && ((x != (mon)->mx) || (y != (mon)->my))) #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); display_warning(mon);
} else if (glyph_is_invisible(lev->glyph)) { } else if (glyph_is_invisible(lev->glyph)) {
map_invisible(x, y); map_invisible(x, y);
} else if (IS_ALTAR(levl[x][y].typ)) {
map_altar(x, y, levl[x][y].altarmask);
} else } else
_map_location(x, y, 1); /* map the location */\ _map_location(x, y, 1); /* map the location */\
} }