summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-place.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/mon-place.cc')
-rw-r--r--crawl-ref/source/mon-place.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/crawl-ref/source/mon-place.cc b/crawl-ref/source/mon-place.cc
index 6629b8acf1..a4273c6a7c 100644
--- a/crawl-ref/source/mon-place.cc
+++ b/crawl-ref/source/mon-place.cc
@@ -1116,6 +1116,17 @@ static int _place_monster_aux(const mgen_data &mg,
int id = mon->mindex();
env.mgrid(fpos) = id;
+ if (mons_is_mimic(mg.cls))
+ {
+ // Mimics who mimic thin air get the axe.
+ if (!give_mimic_item(mon))
+ {
+ mon->reset();
+ mgrd(fpos) = NON_MONSTER;
+ return (-1);
+ }
+ }
+
// Generate a brand shiny new monster, or zombie.
if (mons_class_is_zombified(mg.cls))
_define_zombie(id, mg.base_type, mg.cls, mg.power, fpos);