From 7f599ba676f88c4d0491fea9268701821241ced4 Mon Sep 17 00:00:00 2001 From: ennewalker Date: Sun, 17 Aug 2008 00:35:45 +0000 Subject: [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 --- crawl-ref/source/mapdef.cc | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'crawl-ref/source/mapdef.cc') 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()); -- cgit v1.2.3-54-g00ecf