1 #pragma once
2 
3 #include "tag-version.h"
4 
5 // NOTE: Changing this order will break saves! Appending does not.
6 enum monster_type                      // env.mons[].type
7 {
8     MONS_PROGRAM_BUG,
9         MONS_0 = MONS_PROGRAM_BUG,
10 
11 #if TAG_MAJOR_VERSION > 34
12     MONS_GIANT_LIZARD,          // genus
13 #endif
14     MONS_FRILLED_LIZARD,
15 #if TAG_MAJOR_VERSION == 34
16     MONS_LEOPARD_GECKO,
17 #endif
18     MONS_IGUANA,
19     MONS_KOMODO_DRAGON,
20     MONS_BASILISK,
21     MONS_BAT,
22     MONS_FIRE_BAT,
23 #if TAG_MAJOR_VERSION > 34
24     MONS_SNAKE,                // genus
25 #endif
26     MONS_BALL_PYTHON,
27     MONS_ADDER,
28     MONS_WATER_MOCCASIN,
29     MONS_BLACK_MAMBA,
30     MONS_ANACONDA,
31     MONS_SEA_SNAKE,
32 #if TAG_MAJOR_VERSION > 34
33     MONS_SHOCK_SERPENT,
34     MONS_MANA_VIPER,
35 #endif
36     MONS_RAT,
37 #if TAG_MAJOR_VERSION == 34
38     MONS_GREY_RAT,
39 #endif
40     MONS_RIVER_RAT,
41     MONS_HELL_RAT,
42 #if TAG_MAJOR_VERSION == 34
43     MONS_LABORATORY_RAT,
44 #endif
45     MONS_QUOKKA,         // Quokka are a type of wallaby, returned -- bwr 382
46 #if TAG_MAJOR_VERSION == 34
47     MONS_PORCUPINE,
48 #endif
49 #if TAG_MAJOR_VERSION > 34
50     MONS_PALENTONGA,
51 #endif
52     MONS_JACKAL,
53     MONS_HOUND,
54 #if TAG_MAJOR_VERSION == 34
55     MONS_WAR_DOG,
56 #else
57     MONS_HOWLER_MONKEY,
58 #endif
59     MONS_WOLF,
60     MONS_WARG,
61     MONS_HELL_HOUND,
62 #if TAG_MAJOR_VERSION > 34
63     MONS_RAIJU,
64     MONS_DOOM_HOUND,
65 #endif
66     MONS_HOG,
67     MONS_HELL_HOG,
68     MONS_HOLY_SWINE,            // porkalator
69 #if TAG_MAJOR_VERSION == 34
70     MONS_GIANT_SLUG,
71     MONS_AGATE_SNAIL,
72 #else
73     MONS_DART_SLUG,
74     MONS_TORPOR_SNAIL,
75 #endif
76     MONS_ELEPHANT_SLUG,
77     MONS_TYRANT_LEECH,
78 #if TAG_MAJOR_VERSION == 34
79     MONS_BABY_ALLIGATOR,
80 #endif
81     MONS_ALLIGATOR,
82 #if TAG_MAJOR_VERSION == 34
83     MONS_CROCODILE,
84 #endif
85     MONS_HYDRA,
86 #if TAG_MAJOR_VERSION == 34
87     MONS_SHEEP,
88 #endif
89 #if TAG_MAJOR_VERSION > 34
90     MONS_DREAM_SHEEP,
91 #endif
92     MONS_YAK,
93     MONS_DEATH_YAK,
94     MONS_CATOBLEPAS,
95     MONS_ELEPHANT,
96     MONS_DIRE_ELEPHANT,
97     MONS_HELLEPHANT,
98     MONS_MANTICORE,
99 #if TAG_MAJOR_VERSION == 34
100     MONS_HIPPOGRIFF,
101     MONS_GRIFFON,
102 #endif
103 #if TAG_MAJOR_VERSION > 34
104     MONS_MUTANT_BEAST,
105     MONS_FROG,                  // genus
106 #endif
107     MONS_BULLFROG,
108     MONS_CANE_TOAD,
109     MONS_BLINK_FROG,
110 #if TAG_MAJOR_VERSION > 34
111     MONS_BARACHI,
112     MONS_GOLIATH_FROG,
113     MONS_BEAR,                  // genus
114 #endif
115 #if TAG_MAJOR_VERSION == 34
116     MONS_GRIZZLY_BEAR,
117 #endif
118     MONS_POLAR_BEAR,
119     MONS_BLACK_BEAR,
120     MONS_WORM,
121 #if TAG_MAJOR_VERSION == 34
122     MONS_BRAIN_WORM,
123     MONS_ROCK_WORM,
124     MONS_SPINY_WORM,
125 #endif
126     MONS_WYVERN,
127 #if TAG_MAJOR_VERSION > 34
128     MONS_DRAKE,                 // genus
129 #endif
130     MONS_LINDWURM,
131     MONS_RIME_DRAKE,
132     MONS_SWAMP_DRAKE,
133     MONS_DEATH_DRAKE,
134 #if TAG_MAJOR_VERSION > 34
135     MONS_WIND_DRAKE,
136     MONS_DRAGON,                // genus
137 #endif
138     MONS_STEAM_DRAGON,
139     MONS_ACID_DRAGON,
140     MONS_SWAMP_DRAGON,
141     MONS_FIRE_DRAGON,
142     MONS_ICE_DRAGON,
143     MONS_SHADOW_DRAGON,
144     MONS_STORM_DRAGON,
145     MONS_BONE_DRAGON,
146     MONS_QUICKSILVER_DRAGON,
147     MONS_IRON_DRAGON,
148     MONS_GOLDEN_DRAGON,
149     MONS_PEARL_DRAGON,
150 
151     MONS_ENDOPLASM,
152     MONS_JELLY,
153 #if TAG_MAJOR_VERSION == 34
154     MONS_BROWN_OOZE,
155     MONS_GIANT_AMOEBA,
156 #else
157     MONS_ROCKSLIME,
158     MONS_QUICKSILVER_OOZE,
159 #endif
160     MONS_AZURE_JELLY,
161 #if TAG_MAJOR_VERSION == 34
162     MONS_DEATH_OOZE,
163 #endif
164     MONS_ACID_BLOB,
165     MONS_SLIME_CREATURE,
166 #if TAG_MAJOR_VERSION == 34
167     MONS_PULSATING_LUMP,
168 #endif
169     MONS_FLOATING_EYE,
170 #if TAG_MAJOR_VERSION == 34
171     MONS_EYE_OF_DRAINING,
172 #endif
173     MONS_SHINING_EYE,
174     MONS_EYE_OF_DEVASTATION,
175     MONS_GREAT_ORB_OF_EYES,
176     MONS_GLOWING_ORANGE_BRAIN,
177 
178     MONS_DANCING_WEAPON,
179 #if TAG_MAJOR_VERSION > 34
180     MONS_SPECTRAL_WEAPON,
181     MONS_ANIMATED_ARMOUR,
182 #endif
183     MONS_HARPY,
184 #if TAG_MAJOR_VERSION == 34
185     MONS_RAVEN,
186 #endif
187 #if TAG_MAJOR_VERSION > 34
188     MONS_BENNU,
189     MONS_CAUSTIC_SHRIKE,
190     MONS_SHARD_SHRIKE,
191 
192 #endif
193     MONS_FIRE_CRAB,
194 #if TAG_MAJOR_VERSION == 34
195     MONS_HOMUNCULUS,
196     MONS_SOUPLING,
197 #else
198     MONS_GHOST_CRAB,
199     MONS_CRAB,
200 #endif
201 
202     MONS_BUTTERFLY,
203 #if TAG_MAJOR_VERSION == 34
204     MONS_ANT_LARVA,
205     MONS_WORKER_ANT,
206     MONS_SOLDIER_ANT,
207     MONS_QUEEN_ANT,
208 #endif
209 #if TAG_MAJOR_VERSION > 34
210     MONS_FORMICID,
211 #endif
212     MONS_KILLER_BEE,
213     MONS_QUEEN_BEE,
214 #if TAG_MAJOR_VERSION > 34
215     MONS_MELIAI,
216 #endif
217     MONS_VAMPIRE_MOSQUITO,
218 #if TAG_MAJOR_VERSION == 34
219     MONS_BUMBLEBEE,
220     MONS_WASP,
221 #endif
222     MONS_HORNET,
223 #if TAG_MAJOR_VERSION > 34
224     MONS_SPARK_WASP,
225 #endif
226 #if TAG_MAJOR_VERSION == 34
227     MONS_BEETLE,
228     MONS_BORING_BEETLE,
229 #endif
230     MONS_BOULDER_BEETLE,
231 #if TAG_MAJOR_VERSION > 34
232     MONS_DEATH_SCARAB,
233 #endif
234     MONS_GIANT_COCKROACH,
235 #if TAG_MAJOR_VERSION == 34
236     MONS_GIANT_CENTIPEDE,
237     MONS_GIANT_MITE,
238 #endif
239     MONS_SPIDER,
240     MONS_WOLF_SPIDER,
241 #if TAG_MAJOR_VERSION == 34
242     MONS_TRAPDOOR_SPIDER,
243 #endif
244     MONS_JUMPING_SPIDER,
245     MONS_ORB_SPIDER,
246     MONS_TARANTELLA,
247     MONS_REDBACK,
248     MONS_SCORPION,
249     MONS_EMPEROR_SCORPION,
250     MONS_MOTH,                  // genus
251 #if TAG_MAJOR_VERSION == 34
252     MONS_MOTH_OF_SUPPRESSION,
253 #endif
254     MONS_GHOST_MOTH,
255     MONS_MOTH_OF_WRATH,
256     MONS_DEMONIC_CRAWLER,
257     MONS_SNAPPING_TURTLE,
258     MONS_ALLIGATOR_SNAPPING_TURTLE,
259 #if TAG_MAJOR_VERSION == 34
260     MONS_GNOME,
261 #endif
262     MONS_HALFLING,              // recolouring + single vault.
263     MONS_FELID,                 // recolouring + single vault. Miaow!
264     MONS_VAMPIRE_BAT,           // recolouring + vaults
265     MONS_DEMIGOD,               // recolouring + single vault
266     MONS_DEMONSPAWN,
267 #if TAG_MAJOR_VERSION > 34
268     MONS_FIRST_DEMONSPAWN = MONS_DEMONSPAWN,
269     MONS_MONSTROUS_DEMONSPAWN,
270     MONS_FIRST_BASE_DEMONSPAWN = MONS_MONSTROUS_DEMONSPAWN,
271     MONS_GELID_DEMONSPAWN,
272     MONS_INFERNAL_DEMONSPAWN,
273     MONS_TORTUROUS_DEMONSPAWN,
274     MONS_LAST_BASE_DEMONSPAWN = MONS_TORTUROUS_DEMONSPAWN,
275     MONS_BLOOD_SAINT,
276     MONS_FIRST_NONBASE_DEMONSPAWN = MONS_BLOOD_SAINT,
277     MONS_WARMONGER,
278     MONS_CORRUPTER,
279     MONS_BLACK_SUN,
280     MONS_LAST_NONBASE_DEMONSPAWN = MONS_BLACK_SUN,
281     MONS_LAST_DEMONSPAWN = MONS_BLACK_SUN,
282 #endif
283     MONS_GARGOYLE,
284     MONS_WAR_GARGOYLE,
285     MONS_MOLTEN_GARGOYLE,
286     MONS_UGLY_THING,
287     MONS_VERY_UGLY_THING,
288     MONS_ICE_BEAST,
289     MONS_SKY_BEAST,
290     MONS_SPHINX,
291     MONS_ORB_GUARDIAN,
292 
293     MONS_GOLEM,                 // genus
294 #if TAG_MAJOR_VERSION == 34
295     MONS_CLAY_GOLEM,
296     MONS_WOOD_GOLEM,
297     MONS_STONE_GOLEM,
298 #else
299     MONS_SALTLING,
300     MONS_PEACEKEEPER,
301 #endif
302     MONS_IRON_GOLEM,
303     MONS_CRYSTAL_GUARDIAN,
304     MONS_TOENAIL_GOLEM,
305     MONS_ELECTRIC_GOLEM, // replacing the guardian robot -- bwr
306 #if TAG_MAJOR_VERSION > 34
307     MONS_GUARDIAN_GOLEM,
308     MONS_SPELLFORGED_SERVITOR,
309     MONS_USHABTI,
310 #endif
311     MONS_ORB_OF_FIRE,    // Swords renamed to fit -- bwr
312 #if TAG_MAJOR_VERSION > 34
313     MONS_ELEMENTAL,             // genus
314 #endif
315     MONS_EARTH_ELEMENTAL,
316     MONS_FIRE_ELEMENTAL,
317     MONS_AIR_ELEMENTAL,
318 #if TAG_MAJOR_VERSION > 34
319     MONS_IRON_ELEMENTAL,
320     MONS_ELEMENTAL_WELLSPRING,
321 #endif
322     MONS_TWISTER,        // air miscasts
323     MONS_GOLDEN_EYE,
324     MONS_FIRE_VORTEX,
325     MONS_SPATIAL_VORTEX,
326     MONS_INSUBSTANTIAL_WISP,
327 #if TAG_MAJOR_VERSION > 34
328     MONS_WILL_O_THE_WISP,
329 #else
330     MONS_VAPOUR,
331 
332     // Mimics:
333     MONS_INEPT_ITEM_MIMIC,
334     MONS_ITEM_MIMIC,
335     MONS_RAVENOUS_ITEM_MIMIC,
336     MONS_MONSTROUS_ITEM_MIMIC,
337     MONS_INEPT_FEATURE_MIMIC,
338     MONS_FEATURE_MIMIC,
339     MONS_RAVENOUS_FEATURE_MIMIC,
340     MONS_MONSTROUS_FEATURE_MIMIC, // unused
341 #endif
342 
343     // Plants:
344     MONS_TOADSTOOL,
345     MONS_FUNGUS,
346     MONS_WANDERING_MUSHROOM,
347 #if TAG_MAJOR_VERSION > 34
348     MONS_DEATHCAP,
349 #endif
350     MONS_PLANT,
351     MONS_OKLOB_SAPLING,
352     MONS_OKLOB_PLANT,
353     MONS_BUSH,
354     MONS_BURNING_BUSH,
355 #if TAG_MAJOR_VERSION > 34
356     MONS_THORN_HUNTER,
357     MONS_BRIAR_PATCH,
358     MONS_SHAMBLING_MANGROVE,
359     MONS_VINE_STALKER,
360     MONS_ANIMATED_TREE,
361     MONS_DEMONIC_PLANT,
362     MONS_WITHERED_PLANT,
363 #endif
364     MONS_BALLISTOMYCETE_SPORE,
365     MONS_BALLISTOMYCETE,
366 #if TAG_MAJOR_VERSION == 34
367     MONS_HYPERACTIVE_BALLISTOMYCETE,
368 #endif
369 
370     MONS_GOBLIN,
371     MONS_HOBGOBLIN,
372     MONS_GNOLL,
373     MONS_GNOLL_SHAMAN,
374     MONS_GNOLL_SERGEANT,
375     MONS_BOGGART,
376     MONS_KOBOLD,
377     MONS_KOBOLD_BRIGAND,
378     MONS_KOBOLD_DEMONOLOGIST,
379     MONS_ORC,
380     MONS_ORC_WARRIOR,
381     MONS_ORC_PRIEST,
382     MONS_ORC_HIGH_PRIEST,
383     MONS_ORC_WIZARD,
384     MONS_ORC_KNIGHT,
385     MONS_ORC_SORCERER,
386     MONS_ORC_WARLORD,
387     MONS_DWARF,
388     MONS_DEEP_DWARF,
389 #if TAG_MAJOR_VERSION == 34
390     MONS_DEEP_DWARF_SCION,
391     MONS_DEEP_DWARF_ARTIFICER,
392     MONS_DEEP_DWARF_NECROMANCER,
393     MONS_DEEP_DWARF_BERSERKER,
394     MONS_DEATH_KNIGHT,
395     MONS_UNBORN,
396 #endif
397     MONS_ELF,
398 #if TAG_MAJOR_VERSION == 34
399     MONS_DEEP_ELF_SOLDIER,
400     MONS_DEEP_ELF_FIGHTER,
401 #endif
402     MONS_DEEP_ELF_KNIGHT,
403 #if TAG_MAJOR_VERSION > 34
404     MONS_DEEP_ELF_ARCHER,
405     MONS_DEEP_ELF_AIR_MAGE,
406 #endif
407     MONS_DEEP_ELF_FIRE_MAGE,
408 #if TAG_MAJOR_VERSION == 34
409     MONS_DEEP_ELF_SUMMONER,
410     MONS_DEEP_ELF_CONJURER,
411     MONS_DEEP_ELF_PRIEST,
412 #endif
413     MONS_DEEP_ELF_HIGH_PRIEST,
414     MONS_DEEP_ELF_DEMONOLOGIST,
415     MONS_DEEP_ELF_ANNIHILATOR,
416     MONS_DEEP_ELF_SORCERER,
417     MONS_DEEP_ELF_DEATH_MAGE,
418 #if TAG_MAJOR_VERSION > 34
419     MONS_DEEP_ELF_ELEMENTALIST,
420 #endif
421     MONS_DEEP_ELF_BLADEMASTER,
422     MONS_DEEP_ELF_MASTER_ARCHER,
423     MONS_SPRIGGAN,
424     MONS_SPRIGGAN_DRUID,
425 #if TAG_MAJOR_VERSION == 34
426     MONS_SPRIGGAN_ASSASSIN,
427 #endif
428     MONS_SPRIGGAN_RIDER,
429     MONS_SPRIGGAN_BERSERKER,
430     MONS_SPRIGGAN_DEFENDER,
431     MONS_SPRIGGAN_AIR_MAGE,
432 #if TAG_MAJOR_VERSION == 34
433     MONS_FIREFLY,
434 #endif
435     MONS_TENGU,
436 #if TAG_MAJOR_VERSION > 34
437     MONS_TENGU_WARRIOR,
438     MONS_TENGU_CONJURER,
439     MONS_TENGU_REAVER,
440     MONS_FENSTRIDER_WITCH,
441 #endif
442     MONS_MINOTAUR,
443     MONS_NAGA,
444     MONS_NAGA_WARRIOR,
445     MONS_NAGA_MAGE,
446 #if TAG_MAJOR_VERSION > 34
447     MONS_NAGA_RITUALIST,
448     MONS_NAGA_SHARPSHOOTER,
449 #endif
450     MONS_NAGARAJA,
451     MONS_GUARDIAN_SERPENT,
452     MONS_OCTOPODE,
453     MONS_MERFOLK,
454     MONS_MERFOLK_SIREN,
455     MONS_MERFOLK_AVATAR,
456 #if TAG_MAJOR_VERSION > 34
457     MONS_DROWNED_SOUL,
458 #endif
459     MONS_MERFOLK_IMPALER,
460     MONS_MERFOLK_AQUAMANCER,
461     MONS_MERFOLK_JAVELINEER,
462 #if TAG_MAJOR_VERSION > 34
463     MONS_WATER_NYMPH,
464 #endif
465     MONS_CENTAUR,
466     MONS_CENTAUR_WARRIOR,
467     MONS_YAKTAUR,
468     MONS_YAKTAUR_CAPTAIN,
469 #if TAG_MAJOR_VERSION > 34
470     MONS_FAUN,
471     MONS_SATYR,
472 #endif
473     MONS_OGRE,
474     MONS_TWO_HEADED_OGRE,
475     MONS_OGRE_MAGE,
476     MONS_TROLL,
477 #if TAG_MAJOR_VERSION == 34
478     MONS_ROCK_TROLL,
479 #endif
480     MONS_IRON_TROLL,
481     MONS_DEEP_TROLL,
482 #if TAG_MAJOR_VERSION > 34
483     MONS_DEEP_TROLL_EARTH_MAGE,
484     MONS_DEEP_TROLL_SHAMAN,
485 #endif
486     MONS_GIANT,                 // genus
487 #if TAG_MAJOR_VERSION == 34
488     MONS_HILL_GIANT,
489 #endif
490     MONS_CYCLOPS,
491     MONS_ETTIN,
492     MONS_STONE_GIANT,
493     MONS_FIRE_GIANT,
494     MONS_FROST_GIANT,
495     MONS_TITAN,
496 #if TAG_MAJOR_VERSION > 34
497     MONS_JUGGERNAUT,
498     MONS_IRON_GIANT,
499 #endif
500     MONS_HUMAN,
501 #if TAG_MAJOR_VERSION == 34
502     MONS_SLAVE,
503 #endif
504     MONS_HELL_KNIGHT,
505 #if TAG_MAJOR_VERSION > 34
506     MONS_DEATH_KNIGHT,
507 #endif
508     MONS_NECROMANCER,
509     MONS_WIZARD,
510     MONS_VAULT_GUARD,
511 #if TAG_MAJOR_VERSION > 34
512     MONS_VAULT_SENTINEL,
513     MONS_VAULT_WARDEN,
514     MONS_IRONBOUND_CONVOKER,
515     MONS_IRONBOUND_PRESERVER,
516     MONS_IRONBOUND_FROSTHEART,
517     MONS_IRONBOUND_THUNDERHULK,
518     MONS_IRONBOUND_BEASTMASTER,
519     MONS_IMPERIAL_MYRMIDON,
520     MONS_SERVANT_OF_WHISPERS,
521     MONS_RAGGED_HIEROPHANT,
522     MONS_HALAZID_WARLOCK,
523 #endif
524     MONS_KILLER_KLOWN,
525     MONS_SHAPESHIFTER,
526     MONS_GLOWING_SHAPESHIFTER,
527 
528     // Draconians:
529     MONS_DRACONIAN,
530     MONS_FIRST_DRACONIAN = MONS_DRACONIAN,
531 
532     // If adding more drac colours, sync up colour names in
533     // mon-util.cc.
534     MONS_BLACK_DRACONIAN,
535     MONS_FIRST_BASE_DRACONIAN = MONS_BLACK_DRACONIAN,
536 #if TAG_MAJOR_VERSION == 34
537     MONS_MOTTLED_DRACONIAN,
538 #endif
539     MONS_YELLOW_DRACONIAN,
540     MONS_GREEN_DRACONIAN,
541     MONS_PURPLE_DRACONIAN,
542     MONS_RED_DRACONIAN,
543     MONS_WHITE_DRACONIAN,
544     MONS_LAST_SPAWNED_DRACONIAN = MONS_WHITE_DRACONIAN,
545     MONS_GREY_DRACONIAN,
546     MONS_PALE_DRACONIAN,
547     MONS_LAST_BASE_DRACONIAN = MONS_PALE_DRACONIAN,
548 
549     // Sync up with mon-place.cc's draconian selection if adding more.
550     MONS_DRACONIAN_STORMCALLER,
551     MONS_FIRST_NONBASE_DRACONIAN = MONS_DRACONIAN_STORMCALLER,
552     MONS_DRACONIAN_MONK,
553 #if TAG_MAJOR_VERSION == 34
554     MONS_DRACONIAN_ZEALOT,
555 #endif
556     MONS_DRACONIAN_SHIFTER,
557     MONS_DRACONIAN_ANNIHILATOR,
558     MONS_DRACONIAN_KNIGHT,
559     MONS_DRACONIAN_SCORCHER,
560 
561     MONS_LAST_NONBASE_DRACONIAN = MONS_DRACONIAN_SCORCHER,
562     MONS_LAST_DRACONIAN = MONS_LAST_NONBASE_DRACONIAN,
563 
564     // Lava monsters:
565 #if TAG_MAJOR_VERSION == 34
566     MONS_LAVA_WORM,
567     MONS_LAVA_FISH,
568 #endif
569     MONS_LAVA_SNAKE,
570     MONS_SALAMANDER,
571 #if TAG_MAJOR_VERSION > 34
572     MONS_SALAMANDER_MYSTIC,
573     MONS_SALAMANDER_TYRANT,
574 #endif
575 
576     // Water monsters:
577 #if TAG_MAJOR_VERSION == 34
578     MONS_BIG_FISH,
579     MONS_GIANT_GOLDFISH,
580 #endif
581     MONS_ELECTRIC_EEL,
582 #if TAG_MAJOR_VERSION == 34
583     MONS_JELLYFISH,
584 #endif
585     MONS_WATER_ELEMENTAL,
586     MONS_SWAMP_WORM,
587 #if TAG_MAJOR_VERSION == 34
588     MONS_SHARK,
589 #endif
590     MONS_KRAKEN,
591     MONS_KRAKEN_TENTACLE,
592     MONS_KRAKEN_TENTACLE_SEGMENT,
593 
594     // Statuary
595     MONS_ORANGE_STATUE,
596     MONS_OBSIDIAN_STATUE,
597     MONS_ICE_STATUE,
598     MONS_STATUE,
599     MONS_TRAINING_DUMMY,
600     MONS_LIGHTNING_SPIRE,
601 #if TAG_MAJOR_VERSION > 34
602     MONS_DIAMOND_OBELISK,
603 #endif
604 
605     // Demons:
606     MONS_CRIMSON_IMP,
607     MONS_QUASIT,
608     MONS_WHITE_IMP,
609     MONS_LEMURE,
610     MONS_UFETUBUS,
611     MONS_IRON_IMP,
612     MONS_SHADOW_IMP,
613     MONS_RED_DEVIL,
614 #if TAG_MAJOR_VERSION == 34
615     MONS_ROTTING_DEVIL,
616 #endif
617     MONS_HELLWING,
618     MONS_SIXFIRHY,
619     MONS_NEQOXEC,
620     MONS_ORANGE_DEMON,
621     MONS_SMOKE_DEMON,
622     MONS_YNOXINUL,
623     MONS_CHAOS_SPAWN,
624     MONS_HELLION,
625     MONS_LOROCYPROCA,
626     MONS_TORMENTOR,
627     MONS_REAPER,
628     MONS_SOUL_EATER,
629     MONS_ICE_DEVIL,
630 #if TAG_MAJOR_VERSION == 34
631     MONS_BLUE_DEVIL,
632 #endif
633     MONS_HELL_BEAST,
634     MONS_RUST_DEVIL,
635     MONS_EXECUTIONER,
636     MONS_GREEN_DEATH,
637     MONS_BLIZZARD_DEMON,
638     MONS_BALRUG,
639     MONS_CACODEMON,
640     MONS_SUN_DEMON,
641     MONS_SHADOW_DEMON,
642     MONS_HELL_SENTINEL,
643     MONS_BRIMSTONE_FIEND,
644     MONS_ICE_FIEND,
645     MONS_TZITZIMITL,
646     MONS_PANDEMONIUM_LORD,
647 
648     // Spiritual beings ('R')
649 #if TAG_MAJOR_VERSION > 34
650     MONS_DJINNI,
651 #endif
652     MONS_EFREET,
653     MONS_RAKSHASA,
654 #if TAG_MAJOR_VERSION == 34
655     MONS_RAKSHASA_FAKE,
656 #else
657     MONS_DRYAD,
658     MONS_ELEIONOMA,
659     MONS_SNAPLASHER_VINE,
660     MONS_SNAPLASHER_VINE_SEGMENT,
661 #endif
662 
663     // Abyssals
664     MONS_UNSEEN_HORROR,
665     MONS_TENTACLED_STARSPAWN,
666     MONS_LURKING_HORROR,
667     MONS_THRASHING_HORROR,
668     MONS_STARCURSED_MASS,
669     MONS_ANCIENT_ZYME,
670     MONS_WRETCHED_STAR,
671 #if TAG_MAJOR_VERSION > 34
672     MONS_APOCALYPSE_CRAB,
673     MONS_STARSPAWN_TENTACLE,
674     MONS_STARSPAWN_TENTACLE_SEGMENT,
675     MONS_SPATIAL_MAELSTROM,
676     MONS_WORLDBINDER,
677     MONS_ENTROPY_WEAVER, // not sure where else to put it
678     MONS_BUNYIP,
679 #endif
680     MONS_ELDRITCH_TENTACLE,
681     MONS_ELDRITCH_TENTACLE_SEGMENT,
682     MONS_TENTACLED_MONSTROSITY,
683     MONS_ABOMINATION_SMALL,
684     MONS_ABOMINATION_LARGE,
685 #if TAG_MAJOR_VERSION == 34
686     MONS_CRAWLING_CORPSE,
687     MONS_MACABRE_MASS,
688 #endif
689 
690     // Undead:
691 #if TAG_MAJOR_VERSION > 34
692     MONS_ZOMBIE,
693     MONS_SKELETON,
694     MONS_SIMULACRUM,
695 #endif
696 #if TAG_MAJOR_VERSION == 34
697     MONS_PLAGUE_SHAMBLER,
698 #endif
699     MONS_NECROPHAGE,
700     MONS_GHOUL,
701 #if TAG_MAJOR_VERSION == 34
702     MONS_FLAMING_CORPSE,
703 #else
704     MONS_BLOATED_HUSK,
705 #endif
706     MONS_MUMMY,
707     MONS_BOG_BODY,
708     MONS_GUARDIAN_MUMMY,
709     MONS_ROYAL_MUMMY,
710     MONS_MUMMY_PRIEST,
711     MONS_VAMPIRE,
712     MONS_VAMPIRE_KNIGHT,
713     MONS_VAMPIRE_MAGE,
714     MONS_GHOST,                 // common genus for monster and player ghosts
715     MONS_PHANTOM,
716     MONS_SHADOW,
717 #if TAG_MAJOR_VERSION == 34
718     MONS_HUNGRY_GHOST,
719 #endif
720     MONS_FLAYED_GHOST,
721     MONS_WIGHT,
722     MONS_WRAITH,
723     MONS_FREEZING_WRAITH,
724     MONS_SHADOW_WRAITH,
725     MONS_SILENT_SPECTRE,
726     MONS_EIDOLON,
727     MONS_FLYING_SKULL,
728     MONS_SKELETAL_WARRIOR,
729     MONS_PHANTASMAL_WARRIOR,
730     MONS_LICH,
731     MONS_ANCIENT_LICH,
732 #if TAG_MAJOR_VERSION > 34
733     MONS_DREAD_LICH,
734 #endif
735     MONS_DEATH_COB,
736     MONS_CURSE_TOE,
737     MONS_CURSE_SKULL,
738     MONS_PROFANE_SERVITOR,
739 #if TAG_MAJOR_VERSION > 34
740     MONS_ANCIENT_CHAMPION,
741     MONS_REVENANT,
742     MONS_LOST_SOUL,
743     MONS_JIANGSHI,
744 #endif
745     MONS_SKELETON_SMALL,   // recolouring only
746     MONS_SKELETON_LARGE,   // recolouring only
747     MONS_ZOMBIE_SMALL,     // recolouring only
748     MONS_ZOMBIE_LARGE,     // recolouring only
749     MONS_SPECTRAL_THING,
750     MONS_SIMULACRUM_SMALL, // recolouring only
751     MONS_SIMULACRUM_LARGE, // recolouring only
752 
753     // Holies:
754     MONS_ANGEL,
755     MONS_DAEVA,
756     MONS_CHERUB,
757     MONS_SERAPH,
758 #if TAG_MAJOR_VERSION == 34
759     MONS_PHOENIX,
760     MONS_SILVER_STAR,
761     MONS_BLESSED_TOE,
762     MONS_SHEDU,
763 #endif
764     MONS_OPHAN,
765 #if TAG_MAJOR_VERSION == 34
766     MONS_SPIRIT,
767     MONS_PALADIN,
768 #endif
769     MONS_APIS,
770 
771     // Fixed uniques:
772     MONS_GERYON,
773     MONS_DISPATER,
774     MONS_ASMODEUS,
775     MONS_ANTAEUS,
776     MONS_ERESHKIGAL,
777     MONS_ROYAL_JELLY,
778     MONS_THE_ENCHANTRESS,
779     // the four Pan lords, order must match runes
780     MONS_MNOLEG,
781     MONS_LOM_LOBON,
782     MONS_CEREBOV,
783     MONS_GLOORX_VLOQ,
784     MONS_SERPENT_OF_HELL,
785 #if TAG_MAJOR_VERSION > 34
786     MONS_SERPENT_OF_HELL_COCYTUS,
787     MONS_SERPENT_OF_HELL_DIS,
788     MONS_SERPENT_OF_HELL_TARTARUS,
789 #endif
790     // Random uniques:
791     MONS_IJYB,
792     MONS_JESSICA,
793     MONS_SIGMUND,
794     MONS_TERENCE,
795     MONS_BLORK_THE_ORC,
796     MONS_EDMUND,
797     MONS_PSYCHE,
798     MONS_EROLCHA,
799     MONS_DONALD,
800     MONS_URUG,
801     MONS_JOSEPH,
802     MONS_SNORG, // was Anita - 16jan2000 {dlb}
803     MONS_ERICA,
804     MONS_JOSEPHINE,
805     MONS_HAROLD,
806     MONS_AGNES,
807 #if TAG_MAJOR_VERSION == 34
808     MONS_MAUD,
809 #endif
810     MONS_LOUISE,
811     MONS_FRANCES,
812     MONS_RUPERT,
813 #if TAG_MAJOR_VERSION == 34
814     MONS_WIGLAF,
815 #endif
816     MONS_XTAHUA,
817 #if TAG_MAJOR_VERSION == 34
818     MONS_NORRIS,
819 #endif
820     MONS_FREDERICK,
821     MONS_MARGERY,
822     MONS_BORIS,
823     MONS_POLYPHEMUS,
824     MONS_MURRAY,
825     MONS_TIAMAT,
826     MONS_ROXANNE,
827     MONS_SONJA,
828     MONS_EUSTACHIO,
829     MONS_AZRAEL,
830     MONS_ILSUIW,
831     MONS_PRINCE_RIBBIT,
832     MONS_NERGALLE,
833     MONS_SAINT_ROKA,
834     MONS_NESSOS,
835     MONS_LERNAEAN_HYDRA,
836     MONS_DISSOLUTION,
837     MONS_KIRKE,
838     MONS_GRUM,
839     MONS_PURGY,
840     MONS_MENKAURE,
841     MONS_DUVESSA,
842     MONS_DOWAN,
843     MONS_GASTRONOK,
844     MONS_MAURICE,
845     MONS_KHUFU,
846     MONS_NIKOLA,
847     MONS_AIZUL,
848     MONS_PIKEL,
849     MONS_CRAZY_YIUF,
850     MONS_MENNAS,
851     MONS_MARA,
852 #if TAG_MAJOR_VERSION == 34
853     MONS_MARA_FAKE,
854 #endif
855     MONS_GRINDER,
856     MONS_JORY,
857     MONS_IGNACIO,
858     MONS_ARACHNE,
859 #if TAG_MAJOR_VERSION > 34
860     MONS_HELLBINDER,
861     MONS_CLOUD_MAGE,
862     MONS_FANNAR,
863     MONS_JORGRUN,
864     MONS_SOJOBO,
865     MONS_ASTERION,
866     MONS_NATASHA,
867     MONS_VASHNIA,
868     MONS_ROBIN,
869     MONS_MOON_TROLL,
870     MONS_BAI_SUZHEN,
871     MONS_BAI_SUZHEN_DRAGON,
872     MONS_MAGGIE,
873 #endif
874     // Sprint uniques:
875     MONS_CHUCK,
876 #if TAG_MAJOR_VERSION == 34
877     MONS_IRON_GIANT,
878 #endif
879     MONS_NELLIE,
880 #if TAG_MAJOR_VERSION == 34
881     MONS_IRON_ELEMENTAL,
882 #endif
883 
884     // Specials:
885     MONS_PLAYER_ILLUSION,
886     MONS_PLAYER_GHOST,
887     MONS_BALL_LIGHTNING,
888     MONS_ORB_OF_DESTRUCTION,    // a projectile, not a real mon
889 #if TAG_MAJOR_VERSION > 34
890     MONS_FULMINANT_PRISM,
891     MONS_BATTLESPHERE,
892     MONS_FOXFIRE,
893 #endif
894     MONS_PILLAR_OF_SALT,
895 #if TAG_MAJOR_VERSION > 34
896     MONS_BLOCK_OF_ICE,
897 #endif
898     MONS_HELL_LORD,             // genus
899     MONS_MERGED_SLIME_CREATURE, // used only for recolouring
900     MONS_SENSED,                // dummy monster for unspecified sensed mons
901     MONS_SENSED_TRIVIAL,
902     MONS_SENSED_EASY,
903     MONS_SENSED_TOUGH,
904     MONS_SENSED_NASTY,
905     MONS_SENSED_FRIENDLY,
906     MONS_PLAYER,                // a certain ugly creature
907 #if TAG_MAJOR_VERSION > 34
908     MONS_PLAYER_SHADOW,         // Dithmenos / god wrath
909     MONS_ANCESTOR,              // Hepliaklqana
910     MONS_ANCESTOR_KNIGHT,
911     MONS_ANCESTOR_BATTLEMAGE,
912     MONS_ANCESTOR_HEXER,
913 #endif
914     MONS_TEST_SPAWNER,
915 #if TAG_MAJOR_VERSION > 34
916     MONS_TEST_STATUE,
917     MONS_TEST_BLOB,
918     MONS_NAMELESS,              // summoning miscast
919 #endif
920 
921     // Add new monsters here:
922 #if TAG_MAJOR_VERSION == 34
923     MONS_SERPENT_OF_HELL_COCYTUS,
924     MONS_SERPENT_OF_HELL_DIS,
925     MONS_SERPENT_OF_HELL_TARTARUS,
926 
927     MONS_HELLBINDER,
928     MONS_CLOUD_MAGE,
929     MONS_ANIMATED_TREE,
930 
931     MONS_BEAR,                  // genus
932     MONS_ELEMENTAL,             // genus
933 
934     MONS_FANNAR,
935     MONS_APOCALYPSE_CRAB,
936     MONS_STARSPAWN_TENTACLE,
937     MONS_STARSPAWN_TENTACLE_SEGMENT,
938 
939     MONS_SPATIAL_MAELSTROM,
940     MONS_CHAOS_BUTTERFLY,
941 
942     MONS_JORGRUN,
943     MONS_LAMIA,
944 
945     MONS_FULMINANT_PRISM,
946     MONS_BATTLESPHERE,
947 
948     MONS_GIANT_LIZARD,          // genus
949     MONS_DRAKE,                 // genus
950     MONS_PLAYER_SHADOW,         // Dithmenos / god wrath
951 
952     MONS_DEEP_TROLL_EARTH_MAGE,
953     MONS_DEEP_TROLL_SHAMAN,
954     MONS_DIAMOND_OBELISK,
955 
956     MONS_VAULT_SENTINEL,
957     MONS_VAULT_WARDEN,
958     MONS_IRONBOUND_CONVOKER,
959     MONS_IRONBOUND_PRESERVER,
960 
961     MONS_ZOMBIE,
962     MONS_SKELETON,
963     MONS_SIMULACRUM,
964 
965     MONS_ANCIENT_CHAMPION,
966     MONS_REVENANT,
967     MONS_LOST_SOUL,
968     MONS_JIANGSHI,
969 
970     MONS_DJINNI,
971     MONS_LAVA_ORC,
972 
973     MONS_DRYAD,
974     MONS_WIND_DRAKE,
975     MONS_FAUN,
976     MONS_SATYR,
977 
978     MONS_PAN,
979 
980     MONS_TENGU_WARRIOR,
981     MONS_TENGU_CONJURER,
982     MONS_TENGU_REAVER,
983 
984     MONS_SPRIGGAN_ENCHANTER,
985 
986     MONS_SOJOBO,
987 
988     MONS_CHIMERA,
989 
990     MONS_SNAPLASHER_VINE,
991     MONS_SNAPLASHER_VINE_SEGMENT,
992     MONS_THORN_HUNTER,
993     MONS_BRIAR_PATCH,
994     MONS_SPIRIT_WOLF,
995     MONS_ANCIENT_BEAR,
996     MONS_WATER_NYMPH,
997     MONS_SHAMBLING_MANGROVE,
998     MONS_THORN_LOTUS,
999     MONS_SPECTRAL_WEAPON,
1000     MONS_ELEMENTAL_WELLSPRING,
1001     MONS_POLYMOTH,
1002 
1003     MONS_DEATHCAP,
1004     MONS_IGNIS,
1005 
1006     MONS_FORMICID,
1007     MONS_FORMICID_DRONE,
1008     MONS_FORMICID_VENOM_MAGE,
1009 
1010     MONS_RAIJU,
1011 
1012     MONS_DRAGON,                // genus
1013     MONS_SNAKE,                 // genus
1014 
1015     MONS_MONSTROUS_DEMONSPAWN,
1016     MONS_FIRST_DEMONSPAWN = MONS_MONSTROUS_DEMONSPAWN,
1017     MONS_FIRST_BASE_DEMONSPAWN = MONS_MONSTROUS_DEMONSPAWN,
1018     MONS_GELID_DEMONSPAWN,
1019     MONS_INFERNAL_DEMONSPAWN,
1020     MONS_PUTRID_DEMONSPAWN,     // removed
1021     MONS_TORTUROUS_DEMONSPAWN,
1022     MONS_LAST_BASE_DEMONSPAWN = MONS_TORTUROUS_DEMONSPAWN,
1023     MONS_BLOOD_SAINT,
1024     MONS_FIRST_NONBASE_DEMONSPAWN = MONS_BLOOD_SAINT,
1025     MONS_CHAOS_CHAMPION,        // removed
1026     MONS_WARMONGER,
1027     MONS_CORRUPTER,
1028     MONS_BLACK_SUN,
1029     MONS_LAST_NONBASE_DEMONSPAWN = MONS_BLACK_SUN,
1030     MONS_LAST_DEMONSPAWN = MONS_LAST_NONBASE_DEMONSPAWN,
1031 
1032     MONS_WORLDBINDER,
1033     MONS_GRAND_AVATAR,
1034     MONS_VINE_STALKER,
1035 
1036     MONS_DROWNED_SOUL,
1037 
1038     MONS_SHOCK_SERPENT,
1039     MONS_MANA_VIPER,
1040     MONS_NAGA_RITUALIST,
1041     MONS_NAGA_SHARPSHOOTER,
1042 
1043     MONS_SALAMANDER_FIREBRAND,
1044     MONS_SALAMANDER_MYSTIC,
1045 
1046     MONS_ASTERION,
1047     MONS_NATASHA,
1048     MONS_VASHNIA,
1049 
1050     MONS_BLOCK_OF_ICE,
1051     MONS_GUARDIAN_GOLEM,
1052     MONS_SPELLFORGED_SERVITOR,
1053     MONS_OCTOPODE_CRUSHER,
1054     MONS_CRAB,
1055     MONS_GHOST_CRAB,
1056     MONS_TORPOR_SNAIL,
1057     MONS_MNOLEG_TENTACLE,
1058     MONS_MNOLEG_TENTACLE_SEGMENT,
1059     MONS_BENNU,
1060     MONS_USHABTI,
1061     MONS_DEATH_SCARAB,
1062     MONS_ANUBIS_GUARD,
1063     MONS_CAUSTIC_SHRIKE,
1064 
1065     MONS_ROBIN,
1066 
1067     MONS_SHARD_SHRIKE,
1068     MONS_SINGULARITY,
1069     MONS_SALAMANDER_STORMCALLER,
1070     MONS_ENTROPY_WEAVER,
1071     MONS_MOON_TROLL,
1072     MONS_MUTANT_BEAST,
1073     MONS_JUGGERNAUT,
1074     MONS_SPARK_WASP,
1075     MONS_DOOM_HOUND,
1076     MONS_DEEP_ELF_ELEMENTALIST,
1077     MONS_DEEP_ELF_ARCHER,
1078     MONS_DEMONIC_PLANT,
1079     MONS_WITHERED_PLANT,
1080     MONS_DART_SLUG,
1081     MONS_HOWLER_MONKEY,
1082     MONS_ANCESTOR,
1083     MONS_ANCESTOR_KNIGHT,
1084     MONS_ANCESTOR_BATTLEMAGE,
1085     MONS_ANCESTOR_HEXER,
1086     MONS_MELIAI,
1087     MONS_BAI_SUZHEN,
1088     MONS_BAI_SUZHEN_DRAGON,
1089     MONS_SALTLING,
1090     MONS_IMPERIAL_MYRMIDON,
1091     MONS_SERVANT_OF_WHISPERS,
1092     MONS_PEACEKEEPER,
1093     MONS_RAGGED_HIEROPHANT,
1094     MONS_HALAZID_WARLOCK,
1095     MONS_DREAM_SHEEP,
1096     MONS_FROG,
1097     MONS_BARACHI,
1098     MONS_BULTUNGIN,             // remove this someday
1099     MONS_TEST_STATUE,
1100     MONS_FOXFIRE,
1101     MONS_MAGGIE,
1102     MONS_NAMELESS,
1103     MONS_PALENTONGA,
1104     MONS_BLOATED_HUSK,
1105     MONS_BUNYIP,
1106     MONS_GOLIATH_FROG,
1107     MONS_ELEIONOMA,
1108     MONS_FENSTRIDER_WITCH,
1109     MONS_WILL_O_THE_WISP,
1110     MONS_TEST_BLOB,
1111     MONS_DREAD_LICH,
1112     MONS_DEEP_ELF_AIR_MAGE,
1113     MONS_ANIMATED_ARMOUR,
1114     MONS_ROCKSLIME,
1115     MONS_QUICKSILVER_OOZE,
1116     MONS_IRONBOUND_FROSTHEART,
1117     MONS_IRONBOUND_THUNDERHULK,
1118     MONS_IRONBOUND_BEASTMASTER,
1119     MONS_SALAMANDER_TYRANT,
1120 #endif
1121 
1122     NUM_MONSTERS,               // used for polymorph
1123 
1124     // MONS_NO_MONSTER can get put in savefiles, so it shouldn't change
1125     // when NUM_MONSTERS increases.
1126     MONS_NO_MONSTER = 1000,
1127 
1128     RANDOM_MONSTER = 2000, // used to distinguish between a random monster and using program bugs for error trapping {dlb}
1129     RANDOM_TOUGHER_MONSTER, // used for poly upgrading monsters.
1130     RANDOM_MOBILE_MONSTER, // used for monster generation (shadow creatures)
1131     RANDOM_COMPATIBLE_MONSTER, // used for player shadow creatures (prevents repulsing summons)
1132     RANDOM_BANDLESS_MONSTER,
1133     RANDOM_POLYMORPH_MONSTER, // choose from a per-monster set
1134 
1135     // A random draconian, either base coloured drac or specialised.
1136     RANDOM_DRACONIAN,
1137     // Any random base draconian colour.
1138     RANDOM_BASE_DRACONIAN,
1139     // Any random specialised draconian, such as a draconian knight.
1140     RANDOM_NONBASE_DRACONIAN,
1141 
1142     RANDOM_DEMON_LESSER,               //    0: Class V
1143     RANDOM_DEMON_COMMON,               //    1: Class III-IV
1144     RANDOM_DEMON_GREATER,              //    2: Class I-II
1145     RANDOM_DEMON,                      //    any of the above
1146 
1147     RANDOM_MODERATE_OOD, // +5 depth, AKA '9' glyph on maps
1148     RANDOM_SUPER_OOD, // *2 + 4 depth, AKA '8'
1149 
1150     RANDOM_DEMONSPAWN,
1151     RANDOM_BASE_DEMONSPAWN,
1152     RANDOM_NONBASE_DEMONSPAWN,
1153 
1154     WANDERING_MONSTER = 3500, // only used in monster placement routines - forced limit checks {dlb}
1155 };
1156 COMPILE_CHECK(NUM_MONSTERS < MONS_NO_MONSTER);
1157