From: Pasi Kallinen Date: Wed, 11 Nov 2015 19:47:51 +0000 (+0200) Subject: Fix infinite looping when bound digging on solid map X-Git-Tag: NetHack-3.6.0_RC01~54^2~33^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fad2eab749cce970fa87fa46186218b2dfe1adc1;p=nethack Fix infinite looping when bound digging on solid map --- 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;