From 2f4f7d22d3531c8c07253543b9d8f81637f9356c Mon Sep 17 00:00:00 2001 From: Dean Luick Date: Sun, 17 Jan 2021 14:25:08 -0600 Subject: [PATCH] Fix align type mixup wth align mask 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 | 2 +- src/dungeon.c | 3 ++- src/sp_lev.c | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/include/extern.h b/include/extern.h index 74870cb79..5c84a82a5 100644 --- a/include/extern.h +++ b/include/extern.h @@ -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 *); diff --git a/src/dungeon.c b/src/dungeon.c index eef9a6f16..c40e3f7e3 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -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); diff --git a/src/sp_lev.c b/src/sp_lev.c index 9500847d5..130bdd9c3 100755 --- a/src/sp_lev.c +++ b/src/sp_lev.c @@ -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; -- 2.50.1