]> granicus.if.org Git - nethack/commitdiff
Fix align type mixup wth align mask
authorDean Luick <dean@nethack.org>
Sun, 17 Jan 2021 20:25:08 +0000 (14:25 -0600)
committerDean Luick <dean@nethack.org>
Fri, 29 Jan 2021 15:31:08 +0000 (09:31 -0600)
Fix two cases of missed conversion of an alignment to an align mask.

Change induced_align()'s return type to unsigned int since it returns
an align mask (unsigned), not an align type (signed).

include/extern.h
src/dungeon.c
src/sp_lev.c

index 74870cb79a608798f4c5e43957461c78c9a759d8..5c84a82a57efe146723e289481b34e92fa0dae38 100644 (file)
@@ -621,7 +621,7 @@ extern void find_hell(d_level *);
 extern void goto_hell(boolean, boolean);
 extern void assign_level(d_level *, d_level *);
 extern void assign_rnd_level(d_level *, d_level *, int);
-extern int induced_align(int);
+extern unsigned int induced_align(int);
 extern boolean Invocation_lev(d_level *);
 extern xchar level_difficulty(void);
 extern schar lev_by_name(const char *);
index eef9a6f16b898425a39f4bd5578fb4ab9a3a5d26..c40e3f7e365c873fe358ff030305840ef21b4b8a 100644 (file)
@@ -1865,7 +1865,8 @@ assign_rnd_level(d_level *dest, d_level *src, int range)
         dest->dlevel = 1;
 }
 
-int
+/* return an alignment mask */
+unsigned int
 induced_align(int pct)
 {
     s_level *lev = Is_special(&u.uz);
index 9500847d52d79d89a162ecaf84eb5688f3cf87d6..130bdd9c3c3a1b8d21530a3ae4489199a7e876eb 100755 (executable)
@@ -1769,7 +1769,7 @@ create_monster(monster* m, struct mkroom* croom)
     struct monst *mtmp;
     xchar x, y;
     char class;
-    aligntyp amask;
+    unsigned int amask;
     coord cc;
     struct permonst *pm;
     unsigned g_mvflags;
@@ -1788,7 +1788,7 @@ create_monster(monster* m, struct mkroom* croom)
                   ? Align2amask(noncoalignment(u.ualignbase[A_ORIGINAL]))
                   : (m->align == AM_SPLEV_RANDOM)
                      ? induced_align(80)
-                     : m->align;
+                     : Align2amask(m->align);
 
     if (!class)
         pm = (struct permonst *) 0;
@@ -2266,7 +2266,7 @@ create_altar(altar* a, struct mkroom* croom)
 {
     schar sproom;
     xchar x = -1, y = -1;
-    aligntyp amask;
+    unsigned int amask;
     boolean croom_is_temple = TRUE;
     int oldtyp;
 
@@ -2300,7 +2300,7 @@ create_altar(altar* a, struct mkroom* croom)
                   ? Align2amask(noncoalignment(u.ualignbase[A_ORIGINAL]))
                   : (a->align == AM_SPLEV_RANDOM)
                      ? induced_align(80)
-                     : a->align;
+                     : Align2amask(a->align);
 
     levl[x][y].typ = ALTAR;
     levl[x][y].altarmask = amask;