From 4e6820b10db6edf0d821e785df046bcbcfa165e1 Mon Sep 17 00:00:00 2001 From: Darshan Shaligram Date: Mon, 28 Dec 2009 06:05:48 +0530 Subject: Make _build_vaults check for collisions by default, should fix minivaults appearing in encompass vaults. --- crawl-ref/source/dbg-util.cc | 15 ++++++++------- crawl-ref/source/dungeon.cc | 14 ++++++++++++-- 2 files changed, 20 insertions(+), 9 deletions(-) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/dbg-util.cc b/crawl-ref/source/dbg-util.cc index 57bf3b1b37..84e0f87a0e 100644 --- a/crawl-ref/source/dbg-util.cc +++ b/crawl-ref/source/dbg-util.cc @@ -129,12 +129,15 @@ void debug_dump_levgen() else { const CrawlHashTable &vaults = props[TEMP_VAULTS_KEY].get_table(); - CrawlHashTable::const_iterator i = vaults.begin(); - - for (; i != vaults.end(); ++i) + if (!vaults.empty()) { - mprf(" %s: %s", i->first.c_str(), - i->second.get_string().c_str()); + CrawlHashTable::const_iterator i = vaults.begin(); + + for (; i != vaults.end(); ++i) + { + mprf(" %s: %s", i->first.c_str(), + i->second.get_string().c_str()); + } } } mpr(""); @@ -413,5 +416,3 @@ int debug_cap_stat(int stat) stat > 127 ? 127 : stat); } - - diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc index 61b09b2717..37ecb28ef6 100644 --- a/crawl-ref/source/dungeon.cc +++ b/crawl-ref/source/dungeon.cc @@ -202,7 +202,7 @@ static bool _build_secondary_vault(int level_number, const map_def *vault, static bool _build_vaults(int level_number, const map_def *vault, int rune_subst = -1, bool build_only = false, - bool check_collisions = false, + bool check_collisions = true, bool make_no_exits = false, const coord_def &where = coord_def(-1, -1)); static void _vault_grid(vault_placement &, @@ -823,7 +823,17 @@ void dgn_register_place(const vault_placement &place, bool register_vault) dgn_register_vault(place.map); if (!place.map.has_tag("layout")) - _mask_vault(place, MMT_VAULT | MMT_NO_DOOR); + { + if (place.map.orient == MAP_ENCOMPASS) + { + for (rectangle_iterator ri(0); ri; ++ri) + dgn_Map_Mask(*ri) |= MMT_VAULT | MMT_NO_DOOR; + } + else + { + _mask_vault(place, MMT_VAULT | MMT_NO_DOOR); + } + } if (place.map.has_tag("no_monster_gen")) _mask_vault(place, MMT_NO_MONS); -- cgit v1.2.3-54-g00ecf