diff options
author | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-08-17 00:35:45 +0000 |
---|---|---|
committer | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-08-17 00:35:45 +0000 |
commit | 7f599ba676f88c4d0491fea9268701821241ced4 (patch) | |
tree | a987c6c5e77533fc3438b341466477f4dde9b669 /crawl-ref/source/mapdef.cc | |
parent | 82f5633bfbcc8058b7a5be4838cf8c08b2f72410 (diff) | |
download | crawl-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.cc | 15 |
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()); |