From 54aa84eeea75fcfd7fdf65a8fc3499514383c8e3 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Tue, 21 Apr 2020 18:41:08 +0300 Subject: [PATCH] Prevent branch stairs generating in unjoined room --- src/mklev.c | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/mklev.c b/src/mklev.c index b4d9f8967..71f6f4bef 100644 --- a/src/mklev.c +++ b/src/mklev.c @@ -1165,26 +1165,10 @@ coord *mp; if (g.nroom == 0) { mazexy(mp); /* already verifies location */ } else { - int cnt = 0; - /* not perfect - there may be only one stairway */ - if (g.nroom > 2) { - int tryct = 0; - - do - croom = &g.rooms[rn2(g.nroom)]; - while ((croom == g.dnstairs_room || croom == g.upstairs_room - || (croom->rtype != OROOM && croom->rtype != THEMEROOM)) - && (++tryct < 100)); - } else - croom = &g.rooms[rn2(g.nroom)]; + croom = generate_stairs_find_room(); - do { - if (!somexy(croom, mp)) - impossible("Can't place branch!"); - } while ((occupied(mp->x, mp->y) - || (levl[mp->x][mp->y].typ != CORR - && levl[mp->x][mp->y].typ != ICE - && levl[mp->x][mp->y].typ != ROOM)) && (++cnt < 1000)); + if (!somexyspace(croom, mp)) + impossible("Can't place branch!"); } return croom; } -- 2.50.1