]> granicus.if.org Git - nethack/commitdiff
yet more expanded-glyphs altar follow-up
authornhmall <nhmall@nethack.org>
Wed, 22 Sep 2021 19:47:17 +0000 (15:47 -0400)
committernhmall <nhmall@nethack.org>
Wed, 22 Sep 2021 19:47:17 +0000 (15:47 -0400)
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.

include/display.h
src/display.c
win/share/other.txt
win/share/tilemap.c

index 30d15ffc9495f1e9ca5337031eacfcae13d34377..57147597b967e35acb8df85c7727d48097e2dba4 100644 (file)
  * cmap A           S_ndoor through S_brdnladder
  *                  Count: (S_brdnladder - S_ndoor) + 1 = 19
  *
- * Altars           Altar (Unaligned, Chaotic, Neutral, Lawful, shrine)
+ * Altars           Altar (Unaligned, Chaotic, Neutral, Lawful, high altar)
  *                  Count: 5
  *
  * cmap B           S_grave through S_vibrating_square
@@ -460,15 +460,16 @@ enum glyph_offsets {
 #define altar_to_glyph(amsk) \
     (((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))
+       : (((amsk & AM_SHRINE) == AM_SHRINE)                    \
+          && (Is_astralevel(&u.uz) || Is_sanctum(&u.uz)))      \
+          ? (GLYPH_ALTAR_OFF + 4)                              \
+          : ((amsk & AM_MASK) == AM_CHAOTIC)                   \
+            ? (GLYPH_ALTAR_OFF + 1)                            \
+            : ((amsk & AM_MASK) == AM_NEUTRAL)                 \
+              ? (GLYPH_ALTAR_OFF + 2)                          \
+              : ((amsk & AM_MASK) == AM_LAWFUL)                \
+                ? (GLYPH_ALTAR_OFF + 3)                        \
+                : (GLYPH_ALTAR_OFF + 2))
 
 /* not used, nor is it correct
 #define zap_to_glyph(zaptype, cmap_idx) \
@@ -915,7 +916,7 @@ enum altar_colors {
     altar_color_neutral = CLR_GRAY,
     altar_color_lawful  = CLR_GRAY,
 #endif
-    altar_color_shrine  = CLR_BRIGHT_MAGENTA
+    altar_color_highaltar = CLR_BRIGHT_MAGENTA,
 };
 
 /* types of explosions */
@@ -955,7 +956,7 @@ enum altar_types {
     altar_chaotic,
     altar_neutral,
     altar_lawful,
-    altar_shrine
+    altar_highaltar
 };
 
 enum { GM_FLAGS, GM_TTYCHAR, GM_COLOR, NUM_GLYPHMOD }; /* glyphmod entries */
index a6434b951daec089967b1a219ab1d5988e020918..90cf5b69ce9d9dde58e132591457b8095b64ac1b 100644 (file)
@@ -2183,9 +2183,9 @@ get_bk_glyph(xchar x, xchar y)
 #define HI_DOMESTIC CLR_WHITE /* monst.c */
 
 /* masks for per-level variances kept in g.glyphmap_perlevel_flags */
-#define GMAP_SET        0x0001
-#define GMAP_ROGUELEVEL 0x0002
-#define GMAP_ALTARCOLOR 0x0004
+#define GMAP_SET            0x0001
+#define GMAP_ROGUELEVEL     0x0002
+#define GMAP_HIGHALTARCOLOR 0x0004
 
 void
 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_poison_gas, zap_color_acid,
 };
-const int altarcolors[5] = {
+const int altarcolors[] = {
     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] = {
     explode_color_dark,   explode_color_noxious, explode_color_muddy,
@@ -2328,17 +2328,14 @@ reset_glyphmap(enum glyphmap_change_triggers trigger)
         /*
          *    GMAP_SET                0x00000001
          *    GMAP_ROGUELEVEL         0x00000002
-         *    GMAP_ALTARCOLOR         0x00000004
+         *    GMAP_HIGHALTARCOLOR     0x00000004
          */
         g.glyphmap_perlevel_flags |= GMAP_SET;
 
         if (Is_rogue_level(&u.uz)) {
             g.glyphmap_perlevel_flags |= GMAP_ROGUELEVEL;
-        } else if (Is_astralevel(&u.uz)
-                   || Is_sanctum(&u.uz)
-                   || In_mines(&u.uz)
-                   || Is_valley(&u.uz)) {
-            g.glyphmap_perlevel_flags |= GMAP_ALTARCOLOR;
+        } else if (Is_astralevel(&u.uz) || Is_sanctum(&u.uz)) {
+            g.glyphmap_perlevel_flags |= GMAP_HIGHALTARCOLOR;
         }
     }
 
@@ -2460,12 +2457,9 @@ reset_glyphmap(enum glyphmap_change_triggers trigger)
             gmap->symidx = S_grave + offset + SYM_OFF_P;
             cmap_color(S_grave + offset);
         } 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;
-            if (g.glyphmap_perlevel_flags & GMAP_ALTARCOLOR)
-                altar_color(offset);
-            else
-                cmap_color(S_altar); /* gray */
+            altar_color(offset);
         } else if ((offset = (glyph - GLYPH_CMAP_A_OFF)) >= 0) {
             int cmap = S_ndoor + offset;
             gmap->symidx = cmap + SYM_OFF_P;
index e9c86bfe8ab7559e7f5254994d668a26e84b1765..09ff7df15f40503c68f24829d55fa7fbe7dc6831 100644 (file)
@@ -692,7 +692,7 @@ Z = (195, 195, 195)
   ...AAAAAAAAAAA..
   ................
 }
-# tile 35 (shrine)
+# tile 35 (high altar)
 {
   ................
   ................
index 798924b9d3c67dc44088339c3878413d764cb005..4d4f36f135a0ab4d7de1a83efba764223b38ad1c 100644 (file)
@@ -60,7 +60,7 @@ struct {
 enum {MON_GLYPH, OBJ_GLYPH, OTH_GLYPH, TERMINATOR = -1};
 #define EXTRA_SCROLL_DESCR_COUNT ((SCR_BLANK_PAPER - SCR_STINKING_CLOUD) - 1)
 const char *altar_text[] = {
-    "unaligned", "chaotic", "neutral", "lawful", "shrine",
+    "unaligned", "chaotic", "neutral", "lawful", "high altar",
 };
 enum wall_levels { main_dungeon, mines, gehennom, knox, sokoban };
 
@@ -329,7 +329,7 @@ tilename(int set, const int file_entry, int gend UNUSED)
 
         /* Altars */
         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,
                it isn't much help in identifying details
                these. Roll our own name. */
@@ -889,7 +889,7 @@ init_tilemap(void)
     /* Altars */
     cmap = S_altar;
     j = 0;
-    for (k = altar_unaligned; k <= altar_shrine; k++) {
+    for (k = altar_unaligned; k <= altar_highaltar; k++) {
         offset = GLYPH_ALTAR_OFF + j;
         precheck((offset), "altar");
         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", "horizontal closed drawbridge" },
         { "altar", "unaligned altar" },
-        { "altar", "shrine" },
+        { "altar", "high altar" },
 #if 0
         { "dark part of a room", "stone" },
 #endif