FANDOM


Below is the full text to monflag.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/monflag.h#line123]], for example.

The latest source code for vanilla NetHack is at Source code.


The NetHack General Public License applies to screenshots, source code and other content from NetHack.
1.    /*	SCCS Id: @(#)monflag.h	3.4	1996/05/04	*/
2.    /* Copyright (c) 1989 Mike Threepoint				  */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
5.    #ifndef MONFLAG_H
6.    #define MONFLAG_H
7.    
8.    #define MS_SILENT	0	/* makes no sound */
9.    #define MS_BARK		1	/* if full moon, may howl */
10.   #define MS_MEW		2	/* mews or hisses */
11.   #define MS_ROAR		3	/* roars */
12.   #define MS_GROWL	4	/* growls */
13.   #define MS_SQEEK	5	/* squeaks, as a rodent */
14.   #define MS_SQAWK	6	/* squawks, as a bird */
15.   #define MS_HISS		7	/* hisses */
16.   #define MS_BUZZ		8	/* buzzes (killer bee) */
17.   #define MS_GRUNT	9	/* grunts (or speaks own language) */
18.   #define MS_NEIGH	10	/* neighs, as an equine */
19.   #define MS_WAIL		11	/* wails, as a tortured soul */
20.   #define MS_GURGLE	12	/* gurgles, as liquid or through saliva */
21.   #define MS_BURBLE	13	/* burbles (jabberwock) */
22.   #define MS_ANIMAL	13	/* up to here are animal noises */
23.   #define MS_SHRIEK	15	/* wakes up others */
24.   #define MS_BONES	16	/* rattles bones (skeleton) */
25.   #define MS_LAUGH	17	/* grins, smiles, giggles, and laughs */
26.   #define MS_MUMBLE	18	/* says something or other */
27.   #define MS_IMITATE	19	/* imitates others (leocrotta) */
28.   #define MS_ORC		MS_GRUNT	/* intelligent brutes */
29.   #define MS_HUMANOID	20	/* generic traveling companion */
30.   #ifdef KOPS
31.   #define MS_ARREST	21	/* "Stop in the name of the law!" (Kops) */
32.   #endif
33.   #define MS_SOLDIER	22	/* army and watchmen expressions */
34.   #define MS_GUARD	23	/* "Please drop that gold and follow me." */
35.   #define MS_DJINNI	24	/* "Thank you for freeing me!" */
36.   #define MS_NURSE	25	/* "Take off your shirt, please." */
37.   #define MS_SEDUCE	26	/* "Hello, sailor." (Nymphs) */
38.   #define MS_VAMPIRE	27	/* vampiric seduction, Vlad's exclamations */
39.   #define MS_BRIBE	28	/* asks for money, or berates you */
40.   #define MS_CUSS		29	/* berates (demons) or intimidates (Wiz) */
41.   #define MS_RIDER	30	/* astral level special monsters */
42.   #define MS_LEADER	31	/* your class leader */
43.   #define MS_NEMESIS	32	/* your nemesis */
44.   #define MS_GUARDIAN	33	/* your leader's guards */
45.   #define MS_SELL		34	/* demand payment, complain about shoplifters */
46.   #define MS_ORACLE	35	/* do a consultation */
47.   #define MS_PRIEST	36	/* ask for contribution; do cleansing */
48.   #define MS_SPELL	37	/* spellcaster not matching any of the above */
49.   #define MS_WERE		38	/* lycanthrope in human form */
50.   #define MS_BOAST	39	/* giants */
51.   #define MS_GYPSY	40	/* gypsies */
52.   #define MS_SHEEP	41	/* sheep */
53.   #define MS_CHICKEN	42	/* chicken */
54.   #define MS_COW		43	/* cows and bulls */
55.   #define MS_PARROT	44	/* parrots */
56.   
57.   
58.   #define MR_FIRE         0x01    /* resists fire */
59.   #define MR_COLD         0x02    /* resists cold */
60.   #define MR_SLEEP        0x04    /* resists sleep */
61.   #define MR_DISINT       0x08    /* resists disintegration */
62.   #define MR_ELEC         0x10    /* resists electricity */
63.   #define MR_POISON       0x20    /* resists poison */
64.   #define MR_ACID         0x40    /* resists acid */
65.   #define MR_STONE        0x80    /* resists petrification */
66.   
67.   /* other resistances: magic, sickness */
68.   /* other conveyances: teleport, teleport control, telepathy */
69.   
70.   /* individual resistances */
71.   #define MR2_SEE_INVIS	0x0100	/* see invisible */
72.   #define MR2_LEVITATE	0x0200	/* levitation */
73.   #define MR2_WATERWALK	0x0400	/* water walking */
74.   #define MR2_MAGBREATH	0x0800	/* magical breathing */
75.   #define MR2_DISPLACED	0x1000	/* displaced */
76.   #define MR2_STRENGTH	0x2000	/* gauntlets of power */
77.   #define MR2_FUMBLING	0x4000	/* clumsy */
78.   
79.   /* more type resistances */
80.   #define MR_DEATH	0x00400000L	/* resists death magic */
81.   #define MR_DRAIN	0x00800000L	/* resists level drain */
82.   
83.   #define MR_PLUSONE	0x01000000L	/* need +1 weapon to hit */
84.   #define MR_PLUSTWO	0x02000000L	/* need +2 weapon to hit */
85.   #define MR_PLUSTHREE	0x04000000L	/* need +3 weapon to hit */
86.   #define MR_PLUSFOUR	0x08000000L	/* need +4 weapon to hit */
87.   
88.   /* Doesn't really belong under resistances, but ... */
89.   #define MR_HITASONE	0x10000000L	/* hits ceatures as +1 weapon */
90.   #define MR_HITASTWO	0x20000000L	/* hits ceatures as +2 weapon */
91.   #define MR_HITASTHREE	0x40000000L	/* hits ceatures as +3 weapon */
92.   #define MR_HITASFOUR	0x80000000L	/* hits ceatures as +4 weapon */
93.   
94.   #define MR_TYPEMASK	0xFFC000FFL	/* bits to take from mresists */
95.   
96.   
97.   #define M1_FLY		0x00000001L	/* can fly or float */
98.   #define M1_SWIM		0x00000002L	/* can traverse water */
99.   #define M1_AMORPHOUS	0x00000004L	/* can flow under doors */
100.  #define M1_WALLWALK	0x00000008L	/* can phase thru rock */
101.  #define M1_CLING	0x00000010L	/* can cling to ceiling */
102.  #define M1_TUNNEL	0x00000020L	/* can tunnel thru rock */
103.  #define M1_NEEDPICK	0x00000040L	/* needs pick to tunnel */
104.  #define M1_CONCEAL	0x00000080L	/* hides under objects */
105.  #define M1_HIDE		0x00000100L	/* mimics, blends in with ceiling */
106.  #define M1_AMPHIBIOUS	0x00000200L	/* can survive underwater */
107.  #define M1_BREATHLESS	0x00000400L	/* doesn't need to breathe */
108.  #define M1_NOTAKE	0x00000800L	/* cannot pick up objects */
109.  #define M1_NOEYES	0x00001000L	/* no eyes to gaze into or blind */
110.  #define M1_NOHANDS	0x00002000L	/* no hands to handle things */
111.  #define M1_NOLIMBS	0x00006000L	/* no arms/legs to kick/wear on */
112.  #define M1_NOHEAD	0x00008000L	/* no head to behead */
113.  #define M1_MINDLESS	0x00010000L	/* has no mind--golem, zombie, mold */
114.  #define M1_HUMANOID	0x00020000L	/* has humanoid head/arms/torso */
115.  #define M1_ANIMAL	0x00040000L	/* has animal body */
116.  #define M1_SLITHY	0x00080000L	/* has serpent body */
117.  #define M1_UNSOLID	0x00100000L	/* has no solid or liquid body */
118.  #define M1_THICK_HIDE	0x00200000L	/* has thick hide or scales */
119.  #define M1_OVIPAROUS	0x00400000L	/* can lay eggs */
120.  #define M1_REGEN	0x00800000L	/* regenerates hit points */
121.  #define M1_SEE_INVIS	0x01000000L	/* can see invisible creatures */
122.  #define M1_TPORT	0x02000000L	/* can teleport */
123.  #define M1_TPORT_CNTRL	0x04000000L	/* controls where it teleports to */
124.  #define M1_ACID		0x08000000L	/* acidic to eat */
125.  #define M1_POIS		0x10000000L	/* poisonous to eat */
126.  #define M1_CARNIVORE	0x20000000L	/* eats corpses */
127.  #define M1_HERBIVORE	0x40000000L	/* eats fruits */
128.  #define M1_OMNIVORE	0x60000000L	/* eats both */
129.  #ifdef NHSTDC
130.  #define M1_METALLIVORE	0x80000000UL	/* eats metal */
131.  #else
132.  #define M1_METALLIVORE	0x80000000L	/* eats metal */
133.  #endif
134.  
135.  #define M2_NOPOLY	0x00000001L	/* players mayn't poly into one */
136.  #define M2_UNDEAD	0x00000002L	/* is walking dead */
137.  #define M2_MERC		0x00000004L	/* is a guard or soldier */
138.  #define M2_HUMAN	0x00000008L	/* is a human */
139.  #define M2_ELF		0x00000010L	/* is an elf */
140.  #define M2_DWARF	0x00000020L	/* is a dwarf */
141.  #define M2_GNOME	0x00000040L	/* is a gnome */
142.  #define M2_ORC		0x00000080L	/* is an orc */
143.  #define M2_HOBBIT	0x00000100L	/* is a hobbit */
144.  #define M2_WERE		0x00000200L	/* is a lycanthrope */
145.  #define M2_VAMPIRE	0x00000400L	/* is a vampire */
146.  #define M2_LORD		0x00000800L	/* is a lord to its kind */
147.  #define M2_PRINCE	0x00001000L	/* is an overlord to its kind */
148.  #define M2_MINION	0x00002000L	/* is a minion of a deity */
149.  #define M2_GIANT	0x00004000L	/* is a giant */
150.  #define M2_DEMON	0x00008000L	/* is a demon */
151.  #define M2_MALE		0x00010000L	/* always male */
152.  #define M2_FEMALE	0x00020000L	/* always female */
153.  #define M2_NEUTER	0x00040000L	/* neither male nor female */
154.  #define M2_PNAME	0x00080000L	/* monster name is a proper name */
155.  #define M2_HOSTILE	0x00100000L	/* always starts hostile */
156.  #define M2_PEACEFUL	0x00200000L	/* always starts peaceful */
157.  #define M2_DOMESTIC	0x00400000L	/* can be tamed by feeding */
158.  #define M2_WANDER	0x00800000L	/* wanders randomly */
159.  #define M2_STALK	0x01000000L	/* follows you to other levels */
160.  #define M2_NASTY	0x02000000L	/* extra-nasty monster (more xp) */
161.  #define M2_STRONG	0x04000000L	/* strong (or big) monster */
162.  #define M2_ROCKTHROW	0x08000000L	/* throws boulders */
163.  #define M2_GREEDY	0x10000000L	/* likes gold */
164.  #define M2_JEWELS	0x20000000L	/* likes gems */
165.  #define M2_COLLECT	0x40000000L	/* picks up weapons and food */
166.  #ifdef NHSTDC
167.  #define M2_MAGIC	0x80000000UL	/* picks up magic items */
168.  #else
169.  #define M2_MAGIC	0x80000000L	/* picks up magic items */
170.  #endif
171.  
172.  #define M3_WANTSAMUL	0x0001		/* would like to steal the amulet */
173.  #define M3_WANTSBELL	0x0002		/* wants the bell */
174.  #define M3_WANTSBOOK	0x0004		/* wants the book */
175.  #define M3_WANTSCAND	0x0008		/* wants the candelabrum */
176.  #define M3_WANTSARTI	0x0010		/* wants the quest artifact */
177.  #define M3_WANTSALL	0x001f		/* wants any major artifact */
178.  #define M3_WAITFORU	0x0040		/* waits to see you or get attacked */
179.  #define M3_CLOSE	0x0080		/* lets you close unless attacked */
180.  
181.  #define M3_COVETOUS	0x001f		/* wants something */
182.  #define M3_WAITMASK	0x00c0		/* waiting... */
183.  
184.  /* Infravision is currently implemented for players only */
185.  #define M3_INFRAVISION	0x0100		/* has infravision */
186.  #define M3_INFRAVISIBLE 0x0200		/* visible by infravision */
187.  
188.  /* [DS] Lethe */
189.  #define M3_TRAITOR	0x0400L			/* Capable of treachery */
190.  #define M3_NOTAME	0x0800L			/* Cannot be tamed */
191.  
192.  
193.  #define MZ_TINY		0		/* < 2' */
194.  #define MZ_SMALL	1		/* 2-4' */
195.  #define MZ_MEDIUM	2		/* 4-7' */
196.  #define MZ_HUMAN	MZ_MEDIUM	/* human-sized */
197.  #define MZ_LARGE	3		/* 7-12' */
198.  #define MZ_HUGE		4		/* 12-25' */
199.  #define MZ_GIGANTIC	7		/* off the scale */
200.  
201.  
202.  /* Monster races -- must stay within ROLE_RACEMASK */
203.  /* Eventually this may become its own field */
204.  #define MH_HUMAN	M2_HUMAN
205.  #define MH_ELF		M2_ELF
206.  #define MH_DWARF	M2_DWARF
207.  #define MH_GNOME	M2_GNOME
208.  #define MH_ORC		M2_ORC
209.  #define MH_HOBBIT	M2_HOBBIT
210.  #define MH_WERE		M2_WERE
211.  #define MH_VAMPIRE	M2_VAMPIRE
212.  
213.  
214.  /* for mons[].geno (constant during game) */
215.  #define G_VLGROUP	0x2000		/* appear in very large groups normally */
216.  #define G_UNIQ		0x1000		/* generated only once */
217.  #define G_NOHELL	0x0800		/* not generated in "hell" */
218.  #define G_HELL		0x0400		/* generated only in "hell" */
219.  #define G_NOGEN		0x0200		/* generated only specially */
220.  #define G_SGROUP	0x0080		/* appear in small groups normally */
221.  #define G_LGROUP	0x0040		/* appear in large groups normally */
222.  #define G_GENO		0x0020		/* can be genocided */
223.  #define G_NOCORPSE	0x0010		/* no corpse left ever */
224.  #define G_FREQ		0x0007		/* creation frequency mask */
225.  
226.  /* for mvitals[].mvflags (variant during game), along with G_NOCORPSE */
227.  #define G_KNOWN		0x0004		/* have been encountered */
228.  #define G_GONE		(G_GENOD|G_EXTINCT)
229.  #define G_GENOD		0x0002		/* have been genocided */
230.  #define G_EXTINCT	0x0001		/* have been extinguished as
231.  					   population control */
232.  #define MV_KNOWS_EGG	0x0008		/* player recognizes egg of this
233.  					   monster type */
234.  
235.  /* Additional flag for mkclass() */
236.  #define MKC_ULIMIT	0x10000		/* place an upper limit on difficulty
237.  					   of generated monster */
238.  #endif /* MONFLAG_H */

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.