From 5abee166f559251a8df4feb405c0d70ee9053d6b Mon Sep 17 00:00:00 2001 From: PatR Date: Sat, 5 Oct 2024 15:48:44 -0700 Subject: [PATCH] makelevel() oddity There must have been a reason once to guard against calling makelevel() when the dungeon hasn't been initialized yet, but that doesn't seem to be necessary these days. Calling Is_special() before init_dungeons() is clearly a bug, so fix that. --- src/mklev.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/mklev.c b/src/mklev.c index d4205b12a..1e8a6f703 100644 --- a/src/mklev.c +++ b/src/mklev.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 mklev.c $NHDT-Date: 1704830831 2024/01/09 20:07:11 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.175 $ */ +/* NetHack 3.7 mklev.c $NHDT-Date: 1728168518 2024/10/05 22:48:38 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.191 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Alex Smith, 2017. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1105,14 +1105,17 @@ makelevel(void) branch *branchp; stairway *prevstairs; int room_threshold; - s_level *slev = Is_special(&u.uz); + s_level *slev; int i; - if (wiz1_level.dlevel == 0) + if (wiz1_level.dlevel == 0) { + impossible("makelevel() called when dungeon not yet initialized."); init_dungeons(); + } oinit(); /* assign level dependent obj probabilities */ clear_level_structures(); + slev = Is_special(&u.uz); /* check for special levels */ if (slev && !Is_rogue_level(&u.uz)) { makemaz(slev->proto);