(((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) \
/* ### 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);
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)))
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 */\
}