From d5d88e7104eb008581ae5507bcb6ad8270d769e5 Mon Sep 17 00:00:00 2001 From: backwardsEric Date: Fri, 13 Sep 2019 21:07:53 -0700 Subject: [PATCH] Observed levels in Yeek's den (most frequently level 12) with patches of unrecognied terrain and had crashes on such levels where the common symptom was an out-of-bounds feature index. Changed floor-generate.c so that nothing is done when adding a river to a dungeon, like Yeek's den, that does not accept any of the river types. Have not seen levels with patches of unrecognized terrain since the change. --- src/floor-generate.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/floor-generate.c b/src/floor-generate.c index 909c0eb7..a02de14b 100644 --- a/src/floor-generate.c +++ b/src/floor-generate.c @@ -698,7 +698,7 @@ static bool cave_gen(void) { FEAT_IDX select_deep_feat[10]; FEAT_IDX select_shallow_feat[10]; - int select_id_max = 0, selected; + int select_id_max = 0; if (d_info[p_ptr->dungeon_idx].flags1 & DF1_LAVA_RIVER) { @@ -719,9 +719,13 @@ static bool cave_gen(void) select_id_max++; } - selected = randint0(select_id_max); - feat1 = select_deep_feat[selected]; - feat2 = select_shallow_feat[selected]; + if (select_id_max > 0) + { + int selected = randint0(select_id_max); + + feat1 = select_deep_feat[selected]; + feat2 = select_shallow_feat[selected]; + } } if (feat1) -- 2.20.1 (Apple Git-117)