diff options
author | Jude Brown <bookofjude@users.sourceforge.net> | 2009-12-05 17:25:49 +1000 |
---|---|---|
committer | Jude Brown <bookofjude@users.sourceforge.net> | 2009-12-05 17:25:49 +1000 |
commit | b251a923968bed8dddd52d37a0319564ae9f1312 (patch) | |
tree | 1a4528a52023f218ca4c88dd956c967cde02d66a /crawl-ref/source/dungeon.cc | |
parent | 5676812f1b549d28736a7e6ffc25f36f40309a33 (diff) | |
download | crawl-ref-b251a923968bed8dddd52d37a0319564ae9f1312.tar.gz crawl-ref-b251a923968bed8dddd52d37a0319564ae9f1312.zip |
Fix uniques spawning multiple times (bug #123, Kyrris).
dgn_reset_level(), which resets you.unique_creatures, was being called
before temp_unique_creatures (where you.unique_creatures was being
backed) was actually initialised.
Diffstat (limited to 'crawl-ref/source/dungeon.cc')
-rw-r--r-- | crawl-ref/source/dungeon.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc index 8c91a76616..39f599bb2e 100644 --- a/crawl-ref/source/dungeon.cc +++ b/crawl-ref/source/dungeon.cc @@ -308,6 +308,11 @@ bool builder(int level_number, int level_type) const std::set<std::string> uniq_tags = you.uniq_map_tags; const std::set<std::string> uniq_names = you.uniq_map_names; + // Save a copy of unique creatures for vetoes. + temp_unique_creatures = you.unique_creatures; + // And unrands + temp_unique_items = you.unique_items; + unwind_bool levelgen(Generating_Level, true); // N tries to build the level, after which we bail with a capital B. @@ -1831,11 +1836,6 @@ static void _build_dungeon_level(int level_number, int level_type) return; } - // Save a copy of unique creatures in case we get vetoed. - temp_unique_creatures = you.unique_creatures; - // And unrands - temp_unique_items = you.unique_items; - // Try to place minivaults that really badly want to be placed. Still // no guarantees, seeing this is a minivault. _place_minivaults(); |