diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-11-23 18:58:31 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-11-23 18:58:31 +0000 |
commit | be8748fa444e6813e09ef959f5ee4b88b67dd68e (patch) | |
tree | 0ed8640d1756cbfbd02091d0c74d7b47a7b0eec8 /crawl-ref/source/dungeon.cc | |
parent | 1392155c0cb7acb6224a39611102e46460a06e5b (diff) | |
download | crawl-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.cc | 19 |
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); } |