summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/monplace.cc
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-07 12:03:36 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-07 12:03:36 +0000
commit7ce4f0c31ffe27368d7a62298dcb45fd244904b1 (patch)
tree582135bc457bb1aa6d8978f3208f291469719c59 /crawl-ref/source/monplace.cc
parentf001432886469258339851993d506a8ec3d0b097 (diff)
downloadcrawl-ref-7ce4f0c31ffe27368d7a62298dcb45fd244904b1.tar.gz
crawl-ref-7ce4f0c31ffe27368d7a62298dcb45fd244904b1.zip
Yet another fix to the arena win/loss/tie logic.
During arena mode don't reserve any of mitm[] when creating new items, and when mitm[] fills up call arena_cull_items() instead of _cull_items(), since in arena mode we can cull via how boring/interesting the items are rather than having to consider game balance and fairness to the player. Allow the arena to veto monster placement, rather than culling them immediately after they're placed. New arena tags: * "no_bands" prevents band members from being placed. * "move_spawners" teleports test spawners every turn to spread their summons randomly over the arena. * "ban_glyphs:" lists a set of text glyphs of types of monsters which shouldn't be allowed in the arena. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8300 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/monplace.cc')
-rw-r--r--crawl-ref/source/monplace.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc
index d1ace875bf..0a0574b523 100644
--- a/crawl-ref/source/monplace.cc
+++ b/crawl-ref/source/monplace.cc
@@ -1003,6 +1003,12 @@ static int _place_monster_aux(const mgen_data &mg,
ASSERT(mgrd(fpos) == NON_MONSTER);
+ if (crawl_state.arena)
+ {
+ if (arena_veto_place_monster(mg, first_band_member, fpos))
+ return (-1);
+ }
+
// Now, actually create the monster. (Wheeee!)
menv[id].type = mg.cls;
menv[id].base_monster = mg.base_type;
@@ -2041,6 +2047,9 @@ static int _ood_limit()
void mark_interesting_monst(struct monsters* monster, beh_type behaviour)
{
+ if (crawl_state.arena)
+ return;
+
bool interesting = false;
// Unique monsters are always intersting