summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dungeon.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-11-23 18:58:31 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-11-23 18:58:31 +0000
commitbe8748fa444e6813e09ef959f5ee4b88b67dd68e (patch)
tree0ed8640d1756cbfbd02091d0c74d7b47a7b0eec8 /crawl-ref/source/dungeon.cc
parent1392155c0cb7acb6224a39611102e46460a06e5b (diff)
downloadcrawl-ref-be8748fa444e6813e09ef959f5ee4b88b67dd68e.tar.gz
crawl-ref-be8748fa444e6813e09ef959f5ee4b88b67dd68e.zip
More steps toward ziggurats.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7553 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/dungeon.cc')
-rw-r--r--crawl-ref/source/dungeon.cc19
1 files changed, 10 insertions, 9 deletions
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 9d8bc2c6f7..f78a65de55 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -4759,8 +4759,8 @@ static void _dgn_place_item_explicit(const item_spec &spec,
grd(where) = DNGN_FLOOR;
}
-static void _dgn_place_multiple_items(item_list &list,
- const coord_def& where, int level)
+void dgn_place_multiple_items(item_list &list,
+ const coord_def& where, int level)
{
const int size = list.size();
for (int i = 0; i < size; ++i)
@@ -4885,6 +4885,7 @@ bool dgn_place_monster(mons_spec &mspec,
const int mid = mspec.mid;
const bool m_generate_awake = (generate_awake || mspec.generate_awake);
const bool m_patrolling = (patrolling || mspec.patrolling);
+ const bool m_band = mspec.band;
const int mlev = mspec.mlevel;
if (mlev)
@@ -4924,7 +4925,7 @@ bool dgn_place_monster(mons_spec &mspec,
int lev = monster_level;
if (mspec.place.level_type == LEVEL_DUNGEON)
- lev = absdungeon_depth(mspec.place.branch, mspec.place.depth);
+ lev = mspec.place.absdepth();
if (mlev == -8)
lev = 4 + lev * 2;
@@ -4966,12 +4967,12 @@ bool dgn_place_monster(mons_spec &mspec,
if (m_patrolling)
mg.flags |= MG_PATROLLING;
+ if (m_band)
+ mg.flags |= MG_PERMIT_BANDS;
+
const int mindex = place_monster(mg, true);
- if (mindex != -1)
- {
- if (mspec.items.size() > 0)
- _dgn_give_mon_spec_items(mspec, mindex, mid, monster_level);
- }
+ if (mindex != -1 && mspec.items.size() > 0)
+ _dgn_give_mon_spec_items(mspec, mindex, mid, monster_level);
return (mindex != -1);
}
return (false);
@@ -5123,7 +5124,7 @@ static int _vault_grid( vault_placement &place,
_dgn_place_one_monster(place, mons, level_number, where);
item_list &items = mapsp->get_items();
- _dgn_place_multiple_items(items, where, level_number);
+ dgn_place_multiple_items(items, where, level_number);
return (altar_count);
}