yet more expanded-glyphs altar follow-up

The 5 glyphs are now unaligned_altar, chaotic_altar, neutral_altar,
lawful_altar, and high_altar. The latter is only mapped if you are
on astral or sanctum levels.
This commit is contained in:
nhmall
2021-09-22 15:47:17 -04:00
parent c8c08a6aec
commit 39260880ef
4 changed files with 28 additions and 33 deletions
+13 -12
View File
@@ -317,7 +317,7 @@
* cmap A S_ndoor through S_brdnladder * cmap A S_ndoor through S_brdnladder
* Count: (S_brdnladder - S_ndoor) + 1 = 19 * Count: (S_brdnladder - S_ndoor) + 1 = 19
* *
* Altars Altar (Unaligned, Chaotic, Neutral, Lawful, shrine) * Altars Altar (Unaligned, Chaotic, Neutral, Lawful, high altar)
* Count: 5 * Count: 5
* *
* cmap B S_grave through S_vibrating_square * cmap B S_grave through S_vibrating_square
@@ -460,15 +460,16 @@ enum glyph_offsets {
#define altar_to_glyph(amsk) \ #define altar_to_glyph(amsk) \
(((amsk & (AM_MASK | AM_SHRINE)) == AM_NONE) \ (((amsk & (AM_MASK | AM_SHRINE)) == AM_NONE) \
? (GLYPH_ALTAR_OFF + 0) \ ? (GLYPH_ALTAR_OFF + 0) \
: ((amsk & (AM_MASK | AM_SHRINE)) == AM_CHAOTIC) \ : (((amsk & AM_SHRINE) == AM_SHRINE) \
? (GLYPH_ALTAR_OFF + 1) \ && (Is_astralevel(&u.uz) || Is_sanctum(&u.uz))) \
: ((amsk & (AM_MASK | AM_SHRINE)) == AM_NEUTRAL) \ ? (GLYPH_ALTAR_OFF + 4) \
? (GLYPH_ALTAR_OFF + 2) \ : ((amsk & AM_MASK) == AM_CHAOTIC) \
: ((amsk & (AM_MASK | AM_SHRINE)) == AM_LAWFUL) \ ? (GLYPH_ALTAR_OFF + 1) \
? (GLYPH_ALTAR_OFF + 3) \ : ((amsk & AM_MASK) == AM_NEUTRAL) \
: ((amsk & AM_SHRINE) == AM_SHRINE) \ ? (GLYPH_ALTAR_OFF + 2) \
? (GLYPH_ALTAR_OFF + 4) \ : ((amsk & AM_MASK) == AM_LAWFUL) \
: (GLYPH_ALTAR_OFF + 2)) ? (GLYPH_ALTAR_OFF + 3) \
: (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) \
@@ -915,7 +916,7 @@ enum altar_colors {
altar_color_neutral = CLR_GRAY, altar_color_neutral = CLR_GRAY,
altar_color_lawful = CLR_GRAY, altar_color_lawful = CLR_GRAY,
#endif #endif
altar_color_shrine = CLR_BRIGHT_MAGENTA altar_color_highaltar = CLR_BRIGHT_MAGENTA,
}; };
/* types of explosions */ /* types of explosions */
@@ -955,7 +956,7 @@ enum altar_types {
altar_chaotic, altar_chaotic,
altar_neutral, altar_neutral,
altar_lawful, altar_lawful,
altar_shrine altar_highaltar
}; };
enum { GM_FLAGS, GM_TTYCHAR, GM_COLOR, NUM_GLYPHMOD }; /* glyphmod entries */ enum { GM_FLAGS, GM_TTYCHAR, GM_COLOR, NUM_GLYPHMOD }; /* glyphmod entries */
+10 -16
View File
@@ -2183,9 +2183,9 @@ get_bk_glyph(xchar x, xchar y)
#define HI_DOMESTIC CLR_WHITE /* monst.c */ #define HI_DOMESTIC CLR_WHITE /* monst.c */
/* masks for per-level variances kept in g.glyphmap_perlevel_flags */ /* masks for per-level variances kept in g.glyphmap_perlevel_flags */
#define GMAP_SET 0x0001 #define GMAP_SET 0x0001
#define GMAP_ROGUELEVEL 0x0002 #define GMAP_ROGUELEVEL 0x0002
#define GMAP_ALTARCOLOR 0x0004 #define GMAP_HIGHALTARCOLOR 0x0004
void void
map_glyphinfo(xchar x, xchar y, int glyph, unsigned mgflags, map_glyphinfo(xchar x, xchar y, int glyph, unsigned mgflags,
@@ -2240,9 +2240,9 @@ const int zapcolors[NUM_ZAP] = {
zap_color_sleep, zap_color_death, zap_color_lightning, zap_color_sleep, zap_color_death, zap_color_lightning,
zap_color_poison_gas, zap_color_acid, zap_color_poison_gas, zap_color_acid,
}; };
const int altarcolors[5] = { const int altarcolors[] = {
altar_color_unaligned, altar_color_chaotic, altar_color_neutral, altar_color_unaligned, altar_color_chaotic, altar_color_neutral,
altar_color_lawful, altar_color_shrine, altar_color_lawful, altar_color_highaltar
}; };
const int explodecolors[7] = { const int explodecolors[7] = {
explode_color_dark, explode_color_noxious, explode_color_muddy, explode_color_dark, explode_color_noxious, explode_color_muddy,
@@ -2328,17 +2328,14 @@ reset_glyphmap(enum glyphmap_change_triggers trigger)
/* /*
* GMAP_SET 0x00000001 * GMAP_SET 0x00000001
* GMAP_ROGUELEVEL 0x00000002 * GMAP_ROGUELEVEL 0x00000002
* GMAP_ALTARCOLOR 0x00000004 * GMAP_HIGHALTARCOLOR 0x00000004
*/ */
g.glyphmap_perlevel_flags |= GMAP_SET; g.glyphmap_perlevel_flags |= GMAP_SET;
if (Is_rogue_level(&u.uz)) { if (Is_rogue_level(&u.uz)) {
g.glyphmap_perlevel_flags |= GMAP_ROGUELEVEL; g.glyphmap_perlevel_flags |= GMAP_ROGUELEVEL;
} else if (Is_astralevel(&u.uz) } else if (Is_astralevel(&u.uz) || Is_sanctum(&u.uz)) {
|| Is_sanctum(&u.uz) g.glyphmap_perlevel_flags |= GMAP_HIGHALTARCOLOR;
|| In_mines(&u.uz)
|| Is_valley(&u.uz)) {
g.glyphmap_perlevel_flags |= GMAP_ALTARCOLOR;
} }
} }
@@ -2460,12 +2457,9 @@ reset_glyphmap(enum glyphmap_change_triggers trigger)
gmap->symidx = S_grave + offset + SYM_OFF_P; gmap->symidx = S_grave + offset + SYM_OFF_P;
cmap_color(S_grave + offset); cmap_color(S_grave + offset);
} else if ((offset = (glyph - GLYPH_ALTAR_OFF)) >= 0) { } else if ((offset = (glyph - GLYPH_ALTAR_OFF)) >= 0) {
/* unaligned, chaotic, neutral, lawful, shrine */ /* unaligned, chaotic, neutral, lawful, high altar */
gmap->symidx = S_altar + SYM_OFF_P; gmap->symidx = S_altar + SYM_OFF_P;
if (g.glyphmap_perlevel_flags & GMAP_ALTARCOLOR) altar_color(offset);
altar_color(offset);
else
cmap_color(S_altar); /* gray */
} else if ((offset = (glyph - GLYPH_CMAP_A_OFF)) >= 0) { } else if ((offset = (glyph - GLYPH_CMAP_A_OFF)) >= 0) {
int cmap = S_ndoor + offset; int cmap = S_ndoor + offset;
gmap->symidx = cmap + SYM_OFF_P; gmap->symidx = cmap + SYM_OFF_P;
+1 -1
View File
@@ -692,7 +692,7 @@ Z = (195, 195, 195)
...AAAAAAAAAAA.. ...AAAAAAAAAAA..
................ ................
} }
# tile 35 (shrine) # tile 35 (high altar)
{ {
................ ................
................ ................
+4 -4
View File
@@ -60,7 +60,7 @@ struct {
enum {MON_GLYPH, OBJ_GLYPH, OTH_GLYPH, TERMINATOR = -1}; enum {MON_GLYPH, OBJ_GLYPH, OTH_GLYPH, TERMINATOR = -1};
#define EXTRA_SCROLL_DESCR_COUNT ((SCR_BLANK_PAPER - SCR_STINKING_CLOUD) - 1) #define EXTRA_SCROLL_DESCR_COUNT ((SCR_BLANK_PAPER - SCR_STINKING_CLOUD) - 1)
const char *altar_text[] = { const char *altar_text[] = {
"unaligned", "chaotic", "neutral", "lawful", "shrine", "unaligned", "chaotic", "neutral", "lawful", "high altar",
}; };
enum wall_levels { main_dungeon, mines, gehennom, knox, sokoban }; enum wall_levels { main_dungeon, mines, gehennom, knox, sokoban };
@@ -329,7 +329,7 @@ tilename(int set, const int file_entry, int gend UNUSED)
/* Altars */ /* Altars */
cmap = S_altar; cmap = S_altar;
for (k = altar_unaligned; k <= altar_shrine; k++) { for (k = altar_unaligned; k <= altar_highaltar; k++) {
/* Since defsyms only has one altar symbol, /* Since defsyms only has one altar symbol,
it isn't much help in identifying details it isn't much help in identifying details
these. Roll our own name. */ these. Roll our own name. */
@@ -889,7 +889,7 @@ init_tilemap(void)
/* Altars */ /* Altars */
cmap = S_altar; cmap = S_altar;
j = 0; j = 0;
for (k = altar_unaligned; k <= altar_shrine; k++) { for (k = altar_unaligned; k <= altar_highaltar; k++) {
offset = GLYPH_ALTAR_OFF + j; offset = GLYPH_ALTAR_OFF + j;
precheck((offset), "altar"); precheck((offset), "altar");
tilemap[offset].tilenum = tilenum; tilemap[offset].tilenum = tilenum;
@@ -1377,7 +1377,7 @@ acceptable_tilename(int glyph_set, int idx, const char *encountered,
{ "raised drawbridge", "vertical closed drawbridge" }, { "raised drawbridge", "vertical closed drawbridge" },
{ "raised drawbridge", "horizontal closed drawbridge" }, { "raised drawbridge", "horizontal closed drawbridge" },
{ "altar", "unaligned altar" }, { "altar", "unaligned altar" },
{ "altar", "shrine" }, { "altar", "high altar" },
#if 0 #if 0
{ "dark part of a room", "stone" }, { "dark part of a room", "stone" },
#endif #endif