diff options
-rw-r--r-- | crawl-ref/source/dungeon.cc | 11 |
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); |