1 /*
2 This file is part of "Avanor, the Land of Mystery" roguelike game
3 Home page: http://www.avanor.com/
4 Copyright (C) 2000-2003 Vadim Gaidukevich
5 
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10 
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 */
20 
21 #ifndef __CR_DEFS_H
22 #define __CR_DEFS_H
23 
24 enum CREATURE_CLASS
25 {
26 	CR_NONE			= 0x00000000,
27 	CR_RAT			= 0x00000001,
28 	CR_FELINE		= 0x00000002,
29 	CR_CANINE		= 0x00000004,
30 	CR_REPTILE		= 0x00000008,
31 	CR_INSECT		= 0x00000010,
32 	CR_HUMAN		= 0x00000020,
33 	CR_ORC			= 0x00000040,
34 	CR_GIANT		= 0x00000080,
35 	CR_KOBOLD		= 0x00000100,
36 	CR_UNDEAD		= 0x00000200,
37 	CR_GOBLIN		= 0x00000400,
38 	CR_DEMON		= 0x00000800,
39 	CR_HUMANOID		= 0x00001000,
40 	CR_BLOB			= 0x00002000, //warm mass, ooze
41 	CR_OTHER		= 0x00004000,
42 	CR_ALL			= CR_HUMAN| CR_INSECT | CR_KOBOLD | CR_UNDEAD | CR_GOBLIN | CR_REPTILE | CR_FELINE | CR_RAT | CR_CANINE | CR_HUMANOID,
43 	CR_ALL_IMPL		= CR_RAT | CR_FELINE | CR_CANINE | CR_REPTILE | CR_KOBOLD | CR_INSECT | CR_GOBLIN | CR_UNDEAD,
44 };
45 
46 
47 enum CREATURE_NAME
48 {
49 	CN_NONE			= 0,
50 
51 	//CR_RAT
52 	CN_RAT,
53 	CN_LARGE_RAT,
54 	CN_BLACK_RAT,
55 	CN_HUGE_RAT,
56 
57 	CN_BAT,
58 	CN_HUGE_BAT,
59 
60 
61 	//CR_FELINE
62 	CN_CAT,
63 	CN_WILD_CAT,
64 
65 	//CR_CANINE
66 	CN_DOG,
67 	CN_LARGE_DOG,
68 	CN_RABID_DOG,
69 	CN_WOLF,
70 	CN_LARGE_WOLF,
71 	CN_WEREWOLF,
72 
73 	//CR_REPTILE
74 	CN_SMALL_SNAKE,
75 	CN_GRAY_SNAKE,
76 	CN_BROWN_SNAKE,
77 	CN_SALAMANDER,
78 	CN_LARGE_SNAKE,
79 	CN_COBRA,
80 	CN_KING_COBRA,
81 	CN_RATTLESNAKE,
82 
83 	//CR_INSECT
84 	CN_SPIDER,
85 	CN_GIANT_SPIDER,
86 	CN_TARANTULA,
87 	CN_SCORPION,
88 	CN_BLACK_SCORPION,
89 	CN_PINK_SCORPION,
90 
91 	CN_FIRE_BEETLE,
92 	CN_FROST_BEETLE,
93 	CN_GREEN_BEETLE,
94 	CN_KILLER_BEETLE,
95 	CN_DEATH_BEETLE,
96 
97 	CN_GIANT_BEE,
98 	CN_GIANT_WASP,
99 	CN_GIANT_HORNET,
100 
101 	CN_CENTIPEDE,
102 	CN_STEGOCENTIPEDE,
103 
104 	CN_DUNGEON_CRAWLER,
105 	CN_GIANT_CRAWLER,
106 	CN_CARRION_CRAWLER,
107 
108 	//CR_HUMAN
109 	CN_FARMER,
110 	CN_GOODWIFE,
111 	CN_CITIZEN,
112 	CN_FCITIZEN,
113 	CN_CHILD,
114 	CN_WARRIOR,
115 	CN_GUARD,
116 	CN_ROYAL_GUARD,
117 	CN_DEATH_KNIGHT,
118 
119 	//CR_ORC
120 	CN_ORC,
121 	CN_LARGE_ORC,
122 	CN_HILL_ORC,
123 	CN_DARK_ORC,
124 	CN_SERGEANT_ORC,
125 	CN_LIEUTENANT_ORC,
126 	CN_CAPTAIN_ORC,
127 	CN_CHIEFTAIN_ORC,
128 
129 	//CR_GIANT
130 	CN_OGRE,
131 	CN_BLACK_OGRE,
132 	CN_GIANT,
133 	CN_FROST_GIANT,
134 	CN_FIRE_GIANT,
135 	CN_CYCLOPE,
136 	CN_TITAN,
137 
138 	//CR_KOBOLD
139 	CN_KOBOLD,
140 	CN_LARGE_KOBOLD,
141 	CN_CHIEFTAIN_KOBOLD,
142 	CN_SHAMAN_KOBOLD,
143 	CN_GNOLL,
144 	CN_GNOLL_WARMASTER,
145 
146 	//CR_UNDEAD
147 	CN_SKELETON,
148 	CN_ZOMBIE,
149 	CN_GHOUL,
150 	CN_GHOST,
151 	CN_SPECTRE,
152 	CN_DREAD,
153 	CN_VAMPIRE,
154 	CN_LICH,
155 
156 	//CR_GOBLIN
157 	CN_GOBLIN,
158 	CN_GOBLIN_WARRIOR,
159 	CN_GOBLIN_WARMASTER,
160 	CN_GOBLIN_CHIEFTAIN,
161 
162 	//CR_HUMANOIDS
163 	CN_DWARF,
164 	CN_DWARF_GUARD,
165 
166 	//CR_BLOBS
167 	CN_GRAY_OOZE,
168 	CN_WHITE_OOZE,
169 	CN_GELATINOUS_CUBE,
170 
171 	//UNIQUE
172 	CN_UNIQUE,
173 
174 	CN_ELDER_GRIDOR,
175 	CN_BANDIT,
176 	CN_SHOPKEEPER,
177 	CN_AHKULAN,
178 	CN_GEFEON,
179 	CN_OZORIK,
180 	CN_RODERIK,
181 	CN_GEKTA,
182 	CN_TODIN,
183 	CN_TORIN,
184 	CN_JORGUS,
185 	CN_BEELZEVILE,
186 	CN_YOHJISHIRO,
187 	CN_XSHEE_VOO,
188 	CN_MAGNUSH,
189 	CN_HIGHPRIEST,
190 	CN_EOF
191 };
192 
193 
194 
195 enum CREATURE_LEVEL	{
196 	CRL_VERY_LOW	= 0x0001,
197 	CRL_LOW			= 0x0002,
198 	CRL_ABOVE_LOW	= 0x0004,
199 	CRL_AVG			= 0x0008,
200 	CRL_ABOVE_AVG	= 0x0010,
201 	CRL_HI			= 0x0020,
202 	CRL_ABOVE_HI	= 0x0040,
203 	CRL_VERY_HI		= 0x0080,
204 	CRL_EXTREM_HI	= 0x0100,
205 	CRL_UNIQUE		= 0x0200,
206 	CRL_ANY			= CRL_VERY_LOW | CRL_LOW | CRL_AVG | CRL_HI | CRL_VERY_HI,
207 	CRL_VL			= CRL_VERY_LOW | CRL_LOW,
208 	CRL_LA			= CRL_LOW | CRL_AVG,
209 	CRL_AH			= CRL_AVG | CRL_HI,
210 	CRL_HVH			= CRL_HI | CRL_VERY_HI
211 };
212 
213 enum CREATURE_EXP {
214 	CRE_NONE	= 0x0001,
215 	CRE_LOW		= 0x0002, //1-8
216 	CRE_AVG		= 0x0004, //8-16
217 	CRE_HI		= 0x0008, //16 - 24
218 	CRE_ANY		= CRE_LOW | CRE_AVG | CRE_HI
219 };
220 
221 
222 enum CARRY_STATE {
223 	CSTATE_NORMAL		= 0x001, //the normal carryng
224 	CSTATE_BURDENED		= 0x002,
225 	CSTATE_STRAINED		= 0x003,
226 	CSTATE_OVERBURDEN	= 0x004,
227 	CSTATE_DIE			= 0x005,
228 };
229 
230 
231 enum GROUP_ID
232 {
233 	GID_NONE = 0,
234 	GID_ORCS_WARPARTY,
235 	GID_FOREST_BROTHER,
236 	GID_GUARDIAN,
237 	GID_SMALL_VILLAGE_FARMER,
238 	GID_TOWNEE_1,
239 	GID_DWARVEN_GUARDIAN,
240 	GID_AHKULAN_GUARDIAN,
241 	GID_RODERICK_GUARDIAN,
242 	GID_RANDOM_GUARDIAN,
243 
244 };
245 
246 enum CREATURE_SIZE
247 {
248 	CS_VERY_SMALL	= 1, //insects like, rats, bats
249 	CS_SMALL		= 2, //kobold, hobbit like
250 	CS_NORMAL		= 3, //human like
251 	CS_LARGE		= 4, //TROLL
252 	CS_VERY_LARGE	= 5, //Titan, dragon
253 };
254 
255 enum FOOD_FEELING
256 {
257 	FF_TOLERANT,
258 	FF_NORMAL,
259 	FF_SENSETIVE,
260 };
261 
262 enum CR_GENDER
263 {
264 	GEN_NEUTER = 0x00,
265 	GEN_MALE   = 0x01,
266 	GEN_FEMALE = 0x02,
267 
268 	// TODO: Write code to pick a random gender if male & female flags on.
269 	GEN_RANDOM = (GEN_FEMALE | GEN_MALE)
270 };
271 
272 enum CR_PERSON_TYPE
273 {
274 	CPT_IT     = GEN_NEUTER,   // It
275 	CPT_HE     = GEN_MALE,     // He
276 	CPT_SHE    = GEN_FEMALE,   // She
277 
278 	// Default you
279 	CPT_YOU    = 0x08,
280 
281 	// Genderized you
282 	CPT_MALE_YOU   = (CPT_HE | CPT_YOU),
283 	CPT_FEMALE_YOU = (CPT_SHE | CPT_YOU),
284 
285 	// Unique creatures
286 	CPT_UNIQUE = 0x10,
287 
288 	// Backward compatibility
289 	CPT_NAMED_HE  = (CPT_HE | CPT_UNIQUE),  // Munch-Munch the Dread
290 	CPT_NAMED_SHE = (CPT_SHE | CPT_UNIQUE), // Yohjishiro, the elven wizard
291 	CPT_NAMED_IT  = (CPT_IT | CPT_UNIQUE)   // Gekta, the sheep dog
292 };
293 
294 enum CR_ATTACK_TYPE
295 {
296 	CRAT_MELEE_ONLY,
297 	CRAT_BOTH
298 };
299 
300 
301 
302 
303 #endif
304