summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mapdef.cc
diff options
context:
space:
mode:
authorennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-08-17 00:35:45 +0000
committerennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-08-17 00:35:45 +0000
commit7f599ba676f88c4d0491fea9268701821241ced4 (patch)
treea987c6c5e77533fc3438b341466477f4dde9b669 /crawl-ref/source/mapdef.cc
parent82f5633bfbcc8058b7a5be4838cf8c08b2f72410 (diff)
downloadcrawl-ref-7f599ba676f88c4d0491fea9268701821241ced4.tar.gz
crawl-ref-7f599ba676f88c4d0491fea9268701821241ced4.zip
[2046134] Fixing segfault when random dracos are specified with 'nothing' as equipment.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6830 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mapdef.cc')
-rw-r--r--crawl-ref/source/mapdef.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/crawl-ref/source/mapdef.cc b/crawl-ref/source/mapdef.cc
index 876da5a091..f4a7dc9ae2 100644
--- a/crawl-ref/source/mapdef.cc
+++ b/crawl-ref/source/mapdef.cc
@@ -1991,13 +1991,20 @@ mons_list::mons_spec_slot mons_list::parse_mons_spec(std::string spec)
if (mspec.items.size() > 0)
{
- if (mspec.mid == RANDOM_MONSTER)
+ monster_type mid = (monster_type)mspec.mid;
+ if (mid == RANDOM_DRACONIAN
+ || mid == RANDOM_BASE_DRACONIAN
+ || mid == RANDOM_NONBASE_DRACONIAN)
+ {
+ mid = MONS_DRACONIAN;
+ }
+
+ if (mid >= NUM_MONSTERS)
{
error = "Can't give spec items to a random monster.";
return (slot);
- };
-
- if (mons_itemuse(mspec.mid) < MONUSE_STARTING_EQUIPMENT)
+ }
+ else if (mons_itemuse(mid) < MONUSE_STARTING_EQUIPMENT)
{
error = make_stringf("Monster '%s' can't use items.",
mon_str.c_str());