From fad2eab749cce970fa87fa46186218b2dfe1adc1 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Wed, 11 Nov 2015 21:47:51 +0200 Subject: [PATCH] Fix infinite looping when bound digging on solid map --- src/mkmaze.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mkmaze.c b/src/mkmaze.c index ce3066f81..f602cb45a 100644 --- a/src/mkmaze.c +++ b/src/mkmaze.c @@ -824,7 +824,7 @@ bound_digging() return; /* everything diggable here */ found = nonwall = FALSE; - for (xmin = 0; !found; xmin++) { + for (xmin = 0; !found && xmin <= COLNO; xmin++) { lev = &levl[xmin][0]; for (y = 0; y <= ROWNO - 1; y++, lev++) { typ = lev->typ; @@ -840,7 +840,7 @@ bound_digging() xmin = 0; found = nonwall = FALSE; - for (xmax = COLNO - 1; !found; xmax--) { + for (xmax = COLNO - 1; !found && xmax >= 0; xmax--) { lev = &levl[xmax][0]; for (y = 0; y <= ROWNO - 1; y++, lev++) { typ = lev->typ; @@ -856,7 +856,7 @@ bound_digging() xmax = COLNO - 1; found = nonwall = FALSE; - for (ymin = 0; !found; ymin++) { + for (ymin = 0; !found && ymin <= ROWNO; ymin++) { lev = &levl[xmin][ymin]; for (x = xmin; x <= xmax; x++, lev += ROWNO) { typ = lev->typ; @@ -870,7 +870,7 @@ bound_digging() ymin -= (nonwall || !level.flags.is_maze_lev) ? 2 : 1; found = nonwall = FALSE; - for (ymax = ROWNO - 1; !found; ymax--) { + for (ymax = ROWNO - 1; !found && ymax >= 0; ymax--) { lev = &levl[xmin][ymax]; for (x = xmin; x <= xmax; x++, lev += ROWNO) { typ = lev->typ;