diff options
Diffstat (limited to 'crawl-ref/source/mgen_data.h')
-rw-r--r-- | crawl-ref/source/mgen_data.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/crawl-ref/source/mgen_data.h b/crawl-ref/source/mgen_data.h index f24b70f213..5cc92aaf64 100644 --- a/crawl-ref/source/mgen_data.h +++ b/crawl-ref/source/mgen_data.h @@ -97,7 +97,6 @@ struct mgen_data // be available (vault metadata is not preserved across game saves). unsigned map_mask; - // XXX: Also rather hackish. int hd; int hp; @@ -105,13 +104,15 @@ struct mgen_data // These flags are MF_XXX, rather than MG_XXX flags. uint64_t extra_flags; - // XXX: Rather hackish. std::string mname; // This is used to account for non-actor summoners. Blasted by an Ice // Fiend ... summoned by the effects of Hell. std::string non_actor_summoner; + // This simply stores the initial shape-shifter type. + monster_type initial_shifter; + // This can eventually be used to store relevant information. CrawlHashTable props; @@ -133,7 +134,8 @@ struct mgen_data int mhd = 0, int mhp = 0, uint64_t extflags = 0, std::string monname = "", - std::string nas = "") + std::string nas = "", + monster_type is = RANDOM_MONSTER) : cls(mt), base_type(base), behaviour(beh), summoner(sner), abjuration_duration(abj), summon_type(st), pos(p), @@ -141,7 +143,7 @@ struct mgen_data god(which_god), number(monnumber), colour(moncolour), power(monpower), proximity(prox), level_type(ltype), map_mask(0), hd(mhd), hp(mhp), extra_flags(extflags), mname(monname), - non_actor_summoner(nas), props() + non_actor_summoner(nas), initial_shifter(is), props() { ASSERT(summon_type == 0 || (abj >= 1 && abj <= 6) || mt == MONS_BALL_LIGHTNING || mt == MONS_ORB_OF_DESTRUCTION @@ -180,7 +182,8 @@ struct mgen_data return mgen_data(mt, BEH_HOSTILE, 0, abj, st, p, alert ? MHITYOU : MHITNOT, genflags, ngod, base, 0, BLACK, you.absdepth0, - PROX_ANYWHERE, you.level_type, 0, 0, 0, "", nsummoner); + PROX_ANYWHERE, you.level_type, 0, 0, 0, "", nsummoner, + RANDOM_MONSTER); } }; |