summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/dungeon.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 16e3ebd002..6b4bdda1c6 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -2513,17 +2513,16 @@ static void _place_traps(int level_number)
if (ts.type != TRAP_UNASSIGNED)
continue;
- int tries = 200;
- do
+ int tries;
+ for (tries = 0; tries < 200; ++tries)
{
ts.pos.x = random2(GXM);
ts.pos.y = random2(GYM);
+ if (in_bounds(ts.pos) && grd(ts.pos) == DNGN_FLOOR)
+ break;
}
- while (in_bounds(ts.pos)
- && grd(ts.pos) != DNGN_FLOOR
- && --tries > 0);
- if (tries <= 0)
+ if (tries == 200)
break;
ts.type = random_trap_for_place(level_number);