1 #pragma once
2 
3 #include "enum.h"
4 
5 enum band_type
6 {
7     BAND_NO_BAND                = 0,
8     BAND_KOBOLDS,
9     BAND_ORCS,
10     BAND_ORC_WARRIOR,
11     BAND_ORC_KNIGHT,
12     BAND_ORC_WARLORD,
13     BAND_KILLER_BEES,
14     BAND_CAUSTIC_SHRIKE,
15     BAND_SHARD_SHRIKE,
16     BAND_FLYING_SKULLS,
17     BAND_SLIME_CREATURES,
18     BAND_YAKS,
19     BAND_UGLY_THINGS,
20     BAND_VERY_UGLY_THINGS,
21     BAND_HELL_HOUNDS,
22     BAND_JACKALS,
23     BAND_HELL_KNIGHTS,
24     BAND_GNOLLS,
25     BAND_WIGHTS,
26     BAND_CENTAURS,
27     BAND_CENTAUR_WARRIORS,
28     BAND_YAKTAURS,
29     BAND_OGRE_MAGE,
30     BAND_OGRE_MAGE_EXTERN,
31     BAND_DEATH_YAKS,
32     BAND_NECROMANCER,
33     BAND_BALRUG,
34     BAND_CACODEMON,
35     BAND_EXECUTIONER,
36     BAND_HELLWING,
37     BAND_DEEP_ELF_KNIGHT,
38     BAND_DEEP_ELF_HIGH_PRIEST,
39     BAND_KOBOLD_DEMONOLOGIST,
40     BAND_NAGAS,
41     BAND_GUARDIAN_SERPENT,
42     BAND_WOLVES,
43     BAND_GREEN_RATS,
44     BAND_HELL_RATS,
45     BAND_DREAM_SHEEP,
46     BAND_GHOULS,
47     BAND_DEEP_TROLLS,
48     BAND_DEEP_TROLL_SHAMAN,
49     BAND_HOGS,
50     BAND_HELL_HOGS,
51     BAND_VAMPIRE_MOSQUITOES,
52     BAND_FIRE_BATS,
53     BAND_BOGGARTS,
54     BAND_BLINK_FROGS,
55     BAND_SKELETAL_WARRIORS,
56     BAND_DRACONIAN,
57     BAND_PANDEMONIUM_LORD,
58     BAND_HARPIES,
59     BAND_ILSUIW,
60     BAND_AZRAEL,
61     BAND_DUVESSA,
62     BAND_KHUFU,
63     BAND_GOLDEN_EYE,
64     BAND_PIKEL,
65     BAND_MERFOLK_AQUAMANCER,
66     BAND_MERFOLK_IMPALER,
67     BAND_MERFOLK_JAVELINEER,
68     BAND_ALLIGATOR,
69     BAND_ELEPHANT,
70     BAND_REDBACK,
71     BAND_JUMPING_SPIDER,
72     BAND_TARANTELLA,
73     BAND_POLYPHEMUS,
74     BAND_VAULT_WARDEN,
75     BAND_DEATH_KNIGHT,
76     BAND_JIANGSHI,
77     BAND_FAUNS,
78     BAND_TENGU,
79     BAND_SOJOBO,
80     BAND_SPRIGGANS,
81     BAND_SPRIGGAN_ELITES,
82     BAND_ENCHANTRESS,
83     BAND_SPRIGGAN_DRUID,
84     BAND_SPRIGGAN_RIDERS,
85     BAND_PHANTASMAL_WARRIORS,
86     BAND_THRASHING_HORRORS,
87     BAND_RAIJU,
88     BAND_FAUN_PARTY,
89     BAND_NAGA_RITUALIST,
90     BAND_NAGA_SHARPSHOOTER,
91     BAND_SALAMANDERS,
92     BAND_SALAMANDER_ELITES,
93     BAND_MONSTROUS_DEMONSPAWN,
94     BAND_GELID_DEMONSPAWN,
95     BAND_INFERNAL_DEMONSPAWN,
96     BAND_TORTUROUS_DEMONSPAWN,
97     BAND_BLOOD_SAINT,
98     BAND_WARMONGER,
99     BAND_CORRUPTER,
100     BAND_BLACK_SUN,
101     BAND_VASHNIA,
102     BAND_CEREBOV,
103     BAND_GLOORX_VLOQ,
104     BAND_LOM_LOBON,
105     BAND_MNOLEG,
106     BAND_DEATH_SCARABS,
107     BAND_HOLIES,
108     BAND_ROBIN,
109     BAND_SPARK_WASPS,
110     BAND_RANDOM_SINGLE,
111     BAND_JOSEPHINE,
112     BAND_HOWLER_MONKEY,
113     BAND_MELIAI,
114     BAND_ANCIENT_CHAMPIONS,
115     BAND_SALTLINGS,
116     BAND_DANCING_WEAPONS,
117     BAND_MOLTEN_GARGOYLES,
118     BAND_GOLEMS,
119     BAND_LINDWURMS,
120     BAND_DIRE_ELEPHANTS,
121     NUM_BANDS                   // always last
122 };
123 
124 enum dragon_class_type
125 {
126     DRAGON_LIZARD,
127     DRAGON_DRACONIAN,
128     DRAGON_DRAGON,
129 };
130 
131 enum proximity_type   // proximity to player to create monster
132 {
133     PROX_ANYWHERE,
134     PROX_CLOSE_TO_PLAYER,
135     PROX_AWAY_FROM_PLAYER,
136     PROX_AWAY_FROM_STAIRS,
137     PROX_AWAY_FROM_ENTRANCE,
138 };
139 
140 enum mgen_flag
141 {
142     MG_NONE         = 0x000,
143     MG_PERMIT_BANDS = 0x001, ///< allow placing band members too
144     MG_FORCE_PLACE  = 0x002,
145     MG_FORCE_BEH    = 0x004,
146     MG_AUTOFOE      = 0x008, ///< will automatically choose in-sight foe (if friendly)
147     MG_PATROLLING   = 0x010,
148     MG_BAND_MINION  = 0x020,
149     MG_DONT_COME    = 0x040, ///< suppress the "comes into view" spam
150     MG_DONT_CAP     = 0x080, ///< don't automatically apply the summon cap to this monster
151     MG_FORBID_BANDS = 0x100, ///< override MG_PERMIT_BANDS
152     MG_NO_OOD       = 0x200, ///< don't choose out-of-depth random monsters
153 };
154 DEF_BITFIELD(mgen_flags, mgen_flag);
155