ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/define.h
(Generate patch)

Comparing deliantra/server/include/define.h (file contents):
Revision 1.13 by root, Sun Dec 3 00:59:58 2006 UTC vs.
Revision 1.37 by root, Sun Jan 7 23:10:43 2007 UTC

1/* 1/*
2 CrossFire, A Multiplayer game for X-windows 2 CrossFire, A Multiplayer game for X-windows
3 3
4 Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
4 Copyright (C) 2003-2005 Mark Wedel & Crossfire Development Team 5 Copyright (C) 2003-2005 Mark Wedel & Crossfire Development Team
5 Copyright (C) 1992 Frank Tore Johansen 6 Copyright (C) 1992 Frank Tore Johansen
6 7
7 This program is free software; you can redistribute it and/or modify 8 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 9 it under the terms of the GNU General Public License as published by
16 17
17 You should have received a copy of the GNU General Public License 18 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 19 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 21
21 The authors can be reached via e-mail at crossfire-devel@real-time.com 22 The authors can be reached via e-mail at crossfire@schmorp.de
22*/ 23*/
23 24
24/* This file is best viewed with a window width of about 100 character */ 25/* This file is best viewed with a window width of about 100 character */
25 26
26/* This file is really too large. With all the .h files 27/* This file is really too large. With all the .h files
43 * The following should still hopefully result in an error. 44 * The following should still hopefully result in an error.
44 */ 45 */
45error - Your ANSI C compiler should be defining __STDC__; 46error - Your ANSI C compiler should be defining __STDC__;
46#endif 47#endif
47 48
48#ifndef WIN32 /* ---win32 exclude unix configuration part */
49# include <autoconf.h> 49#include <autoconf.h>
50#endif
51 50
52#define FONTDIR "" 51#define FONTDIR ""
53#define FONTNAME "" 52#define FONTNAME ""
54 53
55/* Decstations have trouble with fabs()... */ 54/* Decstations have trouble with fabs()... */
112 * flags 111 * flags
113 * Also, if you add new entries, try and fill up the holes in this list. 112 * Also, if you add new entries, try and fill up the holes in this list.
114 * Additionally, when you add a new entry, include it in the table in item.c 113 * Additionally, when you add a new entry, include it in the table in item.c
115 */ 114 */
116 115
117/* type 0 will be undefined and shows a non valid type information */ 116/* USED TYPES: (for dead types please look at the bottom of the type
117 * definitions)
118 */
118 119
119#define PLAYER 1 120/* type 0 objects have the default behaviour */
120#define TRANSPORT 2 /* see doc/Developers/objects */ 121
121#define ROD 3 122#define PLAYER 1
123#define TRANSPORT 2 /* see pod/objects.pod */
124#define ROD 3
122#define TREASURE 4 125#define TREASURE 4
123#define POTION 5 126#define POTION 5
124#define FOOD 6 127#define FOOD 6
125#define POISON 7 128#define POISON 7
126#define BOOK 8 129#define BOOK 8
127#define CLOCK 9 130#define CLOCK 9
128 131
129/*#define FBULLET 10 */ 132#define ARROW 13
130 133#define BOW 14
131/*#define FBALL 11 */
132#define LIGHTNING 12
133#define ARROW 13
134#define BOW 14
135#define WEAPON 15 134#define WEAPON 15
136#define ARMOUR 16 135#define ARMOUR 16
137#define PEDESTAL 17 136#define PEDESTAL 17
138#define ALTAR 18 137#define ALTAR 18
139 138
140/*#define CONFUSION 19 */
141#define LOCKED_DOOR 20 139#define LOCKED_DOOR 20
142#define SPECIAL_KEY 21 140#define SPECIAL_KEY 21
143#define MAP 22 141#define MAP 22
144#define DOOR 23 142#define DOOR 23
145#define KEY 24 143#define KEY 24
146 144
147/*#define MMISSILE 25 */
148#define TIMED_GATE 26 145#define TIMED_GATE 26
149#define TRIGGER 27 146#define TRIGGER 27
150#define GRIMREAPER 28 147#define GRIMREAPER 28
151#define MAGIC_EAR 29 148#define MAGIC_EAR 29
152#define TRIGGER_BUTTON 30 149#define TRIGGER_BUTTON 30
153#define TRIGGER_ALTAR 31 150#define TRIGGER_ALTAR 31
154#define TRIGGER_PEDESTAL 32 151#define TRIGGER_PEDESTAL 32
155#define SHIELD 33 152#define SHIELD 33
156#define HELMET 34 153#define HELMET 34
157#define HORN 35 154#define HORN 35
158#define MONEY 36 155#define MONEY 36
159#define CLASS 37 /* object for applying character class modifications to someone */ 156#define CLASS 37 /* object for applying character class modifications to someone */
160#define GRAVESTONE 38 157#define GRAVESTONE 38
161#define AMULET 39 158#define AMULET 39
162#define PLAYERMOVER 40 159#define PLAYERMOVER 40
163#define TELEPORTER 41 160#define TELEPORTER 41
164#define CREATOR 42 161#define CREATOR 42
165#define SKILL 43 /* also see SKILL_TOOL (74) below */ 162#define SKILL 43 /* also see SKILL_TOOL (74) below */
166#define EXPERIENCE 44 /* This is basically obsolete now. It used to contain */ 163
167 /* experience for broad skill categories. This value */
168 /* is now automatically converteed at load time. */
169#define EARTHWALL 45 164#define EARTHWALL 45
170#define GOLEM 46 165#define GOLEM 46
171 166
172/*#define BOMB 47 */
173#define THROWN_OBJ 48 167#define THROWN_OBJ 48
174#define BLINDNESS 49 168#define BLINDNESS 49
175#define GOD 50 169#define GOD 50
176
177#define DETECTOR 51 /* peterm: detector is an object */ 170#define DETECTOR 51 /* peterm: detector is an object
178 /* which notices the presense of */ 171 * which notices the presense of
179 /* another object and is triggered */ 172 * another object and is triggered
180 /* like buttons. */ 173 * like buttons.
174 */
181#define TRIGGER_MARKER 52 /* inserts an invisible, weightless */ 175#define TRIGGER_MARKER 52 /* inserts an invisible, weightless
182 /* force into a player with a specified string WHEN TRIGGERED. */ 176 * force into a player with a specified string WHEN TRIGGERED.
177 */
183#define DEAD_OBJECT 53 178#define DEAD_OBJECT 53
184#define DRINK 54 179#define DRINK 54
185#define MARKER 55 /* inserts an invisible, weightless */ 180#define MARKER 55 /* inserts an invisible, weightless
186 /* force into a player with a specified string. */ 181 * force into a player with a specified string.
182 */
187#define HOLY_ALTAR 56 183#define HOLY_ALTAR 56
188#define PLAYER_CHANGER 57 184#define PLAYER_CHANGER 57
189#define BATTLEGROUND 58 /* battleground, by Andreas Vogl */ 185#define BATTLEGROUND 58 /* battleground, by Andreas Vogl */
190 186
191#define PEACEMAKER 59 /* Object owned by a player which can convert */ 187#define PEACEMAKER 59 /* Object owned by a player which can convert
192 /* a monster into a peaceful being incapable of attack. */ 188 * a monster into a peaceful being incapable of attack.
193#define GEM 60 189 */
190#define GEM 60
194 191
195 /*#define FIRECHEST 61*//* FIRECHEST folded into FIREWALL */
196#define FIREWALL 62 192#define FIREWALL 62
197#define ANVIL 63 193#define ANVIL 63
198#define CHECK_INV 64 /* by b.t. thomas@nomad.astro.psu.edu */ 194#define CHECK_INV 64 /* by b.t. thomas@nomad.astro.psu.edu */
199#define MOOD_FLOOR 65 /* by b.t. thomas@nomad.astro.psu.edu 195#define MOOD_FLOOR 65 /* by b.t. thomas@nomad.astro.psu.edu
200 * values of last_sp set how to change: 196 * values of last_sp set how to change:
201 * 0 = furious, all monsters become aggressive 197 * 0 = furious, all monsters become aggressive
202 * 1 = angry, all but friendly become aggressive 198 * 1 = angry, all but friendly become aggressive
203 * 2 = calm, all aggressive monsters calm down 199 * 2 = calm, all aggressive monsters calm down
204 * 3 = sleep, all monsters fall asleep 200 * 3 = sleep, all monsters fall asleep
205 * 4 = charm, monsters become pets */ 201 * 4 = charm, monsters become pets */
206#define EXIT 66 202#define EXIT 66
207#define ENCOUNTER 67 203#define ENCOUNTER 67
208#define SHOP_FLOOR 68 204#define SHOP_FLOOR 68
209#define SHOP_MAT 69 205#define SHOP_MAT 69
210#define RING 70 206#define RING 70
211#define FLOOR 71 /* this is a floor tile -> native layer 0 */ 207#define FLOOR 71 /* this is a floor tile -> native layer 0 */
212#define FLESH 72 /* animal 'body parts' -b.t. */ 208#define FLESH 72 /* animal 'body parts' -b.t. */
213#define INORGANIC 73 /* metals and minerals */ 209#define INORGANIC 73 /* metals and minerals */
214#define SKILL_TOOL 74 /* Allows the use of a skill */ 210#define SKILL_TOOL 74 /* Allows the use of a skill */
215#define LIGHTER 75 211#define LIGHTER 75
216 212
217/* The trap_part, wall, light_source, misc_object, monster, and spawn_generator 213#define BUILDABLE_WALL 77 /* this is a buildable wall */
218 * types are not used in any archetypes, and should perhaps be removed.
219 */
220#define TRAP_PART 76 /* Needed by set traps skill -b.t. */
221 214
222#define WALL 77 /* this is a wall. put it always in layer 1 if not set is_floor */ 215
223#define LIGHT_SOURCE 78 /* torches, lamps, etc. */
224#define MISC_OBJECT 79 /* misc. objects are for objects without a function 216#define MISC_OBJECT 79 /* misc. objects are for objects without a function
225 in the engine. Like statues, clocks, chairs,... 217 in the engine. Like statues, clocks, chairs,...
226 If perhaps we create a function where we can sit 218 If perhaps we create a function where we can sit
227 on chairs, we create a new type and remove all 219 on chairs, we create a new type and remove all
228 chairs from here. */ 220 chairs from here. */
229#define MONSTER 80 221
230 /* yes, thats a real, living creature */ 222#define LAMP 82 /* a lamp */
231#define SPAWN_GENERATOR 81
232 /* a spawn point or monster generator object */
233#define LAMP 82 /* a lamp */
234#define DUPLICATOR 83 /* duplicator/multiplier object */ 223#define DUPLICATOR 83 /* duplicator/multiplier object */
235#define TOOL 84 /* a tool for building objects */ 224
236#define SPELLBOOK 85 225#define SPELLBOOK 85
237#define BUILDFAC 86 /* facilities for building objects */
238#define CLOAK 87
239 226
240/*#define CONE 88 */ 227#define CLOAK 87
241 228
242 /*#define AURA 89 *//* aura spell object */
243
244#define SPINNER 90 229#define SPINNER 90
245#define GATE 91 230#define GATE 91
246#define BUTTON 92 231#define BUTTON 92
247#define CF_HANDLE 93 232#define CF_HANDLE 93
248#define HOLE 94 233#define HOLE 94
249#define TRAPDOOR 95 234#define TRAPDOOR 95
250 235
251/*#define WORD_OF_RECALL 96 */ 236#define SIGN 98
252 237#define BOOTS 99
253/*#define PARAIMAGE 97 */
254#define SIGN 98
255#define BOOTS 99
256#define GLOVES 100 238#define GLOVES 100
257#define SPELL 101 239#define SPELL 101
258#define SPELL_EFFECT 102 240#define SPELL_EFFECT 102
259#define CONVERTER 103 241#define CONVERTER 103
260#define BRACERS 104 242#define BRACERS 104
261#define POISONING 105 243#define POISONING 105
262#define SAVEBED 106 244#define SAVEBED 106
263#define POISONCLOUD 107
264#define FIREHOLES 108
265#define WAND 109
266 245
267/*#define ABILITY 110*/ 246#define WAND 109
247
268#define SCROLL 111 248#define SCROLL 111
269#define DIRECTOR 112 249#define DIRECTOR 112
270#define GIRDLE 113 250#define GIRDLE 113
271#define FORCE 114 251#define FORCE 114
272#define POTION_EFFECT 115 /* a force, holding the effect of a potion */ 252#define POTION_EFFECT 115 /* a force, holding the effect of a potion */
273#define EVENT_CONNECTOR 116/* Lauwenmark: an invisible object holding a plugin event hook */ 253#define EVENT_CONNECTOR 116 /* Lauwenmark: an invisible object holding a plugin event hook */
254
274#define CLOSE_CON 121 /* Eneq(@csd.uu.se): Id for close_container archetype. */ 255#define CLOSE_CON 121 /* Eneq(@csd.uu.se): Id for close_container archetype. */
275#define CONTAINER 122 256#define CONTAINER 122
276#define ARMOUR_IMPROVER 123 257#define ARMOUR_IMPROVER 123
277#define WEAPON_IMPROVER 124 258#define WEAPON_IMPROVER 124
278 259
260#define SKILLSCROLL 130 /* can add a skill to player's inventory -bt. */
261#define DEEP_SWAMP 138
262#define IDENTIFY_ALTAR 139
263
264#define MENU 150 /* Mark Wedel (mark@pyramid.com) Shop inventories */
265
266#define RUNE 154
267#define TRAP 155
268
269#define POWER_CRYSTAL 156
270#define CORPSE 157
271
272#define DISEASE 158
273#define SYMPTOM 159
274#define BUILDER 160 /* Generic item builder, see subtypes */
275#define MATERIAL 161 /* Material for building */
276
277#define ITEM_TRANSFORMER 163 /* Transforming one item with another */
278
279#define SAFE_GROUND 165 /* This is a safe ground, means that neither bombs,
280 potions, alchemy, or magic works here (elmex) */
281
282/* DEAD TYPES: */
283//#define FBULLET 10
284//#define FBALL 11
285//#define LIGHTNING 12 // elmex: implemented by type 102 subtype 4
286//#define CONFUSION 19
287//#define MMISSILE 25
288/*#define EXPERIENCE 44*//* This is basically obsolete now. It used to contain
289 * experience for broad skill categories. This value
290 * is now automatically converteed at load time.
291 */
292//#define BOMB 47
293//#define FIRECHEST 61 /* FIRECHEST folded into FIREWALL */
294
295/* random crossfire developer: The trap_part, wall, light_source,
296 * misc_object, monster, and spawn_generator
297 * types are not used in any archetypes,
298 * and should perhaps be removed.
299 *
300 * Wed Dec 20 13:35:24 CET 2006:
301 * elmex: haha, removed TRAP_PART, LIGHT_SOURCE, MONSTER and SPAWN_GENERATOR now.
302 * monsters are marked by FLAG_MONSTER and generator with FLAG_GENERATOR.
303 * renamed WALL to BUILDABLE_WALL.
304 */
305
306//#define TRAP_PART 76 /* Needed by set traps skill -b.t. */
307//#define LIGHT_SOURCE 78 /* torches, lamps, etc. */
308//#define MONSTER 80 /* yes, thats a real, living creature */
309//#define SPAWN_GENERATOR 81 /* a spawn point or monster generator object */
310//#define TOOL 84 /* a tool for building objects */
311//#define BUILDFAC 86 /* facilities for building objects */
312//#define CONE 88
313//#define AURA 89 /* aura spell object */
314//#define WORD_OF_RECALL 96
315//#define PARAIMAGE 97
316//#define POISONCLOUD 107
317//#define FIREHOLES 108
318//#define ABILITY 110
279/* unused: 125 - 129 319/* unused: 125 - 129
280 * type 125 was MONEY_CHANGER 320 * type 125 was MONEY_CHANGER
281 */ 321 */
282#define SKILLSCROLL 130 /* can add a skill to player's inventory -bt. */ 322//#define CANCELLATION 141 /* not used with new spell code */
283#define DEEP_SWAMP 138 323//#define BALL_LIGHTNING 151 /* peterm: ball lightning and color spray */
284#define IDENTIFY_ALTAR 139 324//#define SWARM_SPELL 153
285
286 /*#define CANCELLATION 141*//* not used with new spell code */
287#define MENU 150 /* Mark Wedel (mark@pyramid.com) Shop inventories */
288
289 /*#define BALL_LIGHTNING 151 *//* peterm: ball lightning and color spray */
290
291/*#define SWARM_SPELL 153*/
292#define RUNE 154
293#define TRAP 155
294
295#define POWER_CRYSTAL 156
296#define CORPSE 157
297
298#define DISEASE 158
299#define SYMPTOM 159
300#define BUILDER 160 /* Generic item builder, see subtypes */
301#define MATERIAL 161/* Material for building */
302
303/* #define GPS 162 Ground positionning system, moved to Python plugin */ 325//#define GPS 162 /* Ground positionning system, moved to Python plugin */
304#define ITEM_TRANSFORMER 163/* Transforming one item with another */
305#define QUEST 164/* See below for subtypes */ 326//#define QUEST 164 /* See below for subtypes */
306#define SAFE_GROUND 165 /* This is a safe ground, means that neither bombs,
307 potions, alchemy, or magic works here (elmex) */
308 327
309/* END TYPE DEFINE */ 328/* END TYPE DEFINE */
310 329
311#define NUM_SUBTYPES 64 // maximum supported subtype number + 1, can be increased to 256 330#define NUM_SUBTYPES 64 // maximum supported subtype number + 1, can be increased to 256
312 331
397#define SIZEOFFREE2 24 416#define SIZEOFFREE2 24
398#define SIZEOFFREE 49 417#define SIZEOFFREE 49
399 418
400#define NROF_SOUNDS (23 + NROFREALSPELLS) /* Number of sounds */ 419#define NROF_SOUNDS (23 + NROFREALSPELLS) /* Number of sounds */
401 420
402/* Flag structure now changed. 421/*
403 * Each flag is now a bit offset, starting at zero. The macros
404 * will update/read the appropriate flag element in the object
405 * structure.
406 *
407 * Hopefully, since these offsets are integer constants set at run time,
408 * the compiler will reduce the macros something as simple as the
409 * old system was.
410 *
411 * Flags now have FLAG as the prefix. This to be clearer, and also
412 * to make sure F_ names are not still being used anyplace.
413 *
414 * The macros below assume that the flag size for each element is 32
415 * bits. IF it is smaller, bad things will happen. See structs.h
416 * for more info.
417 *
418 * All functions should use the macros below. In process of converting
419 * to the new system, I find several files that did not use the previous
420 * macros.
421 *
422 * If any FLAG's are or changed, make sure the flag_names structure in 422 * If any FLAG's are added or changed, make sure the flag_names structure in
423 * common/loader.l is updated. 423 * common/loader.l is updated.
424 *
425 * flags[0] is 0 to 31
426 * flags[1] is 32 to 63
427 * flags[2] is 64 to 95
428 * flags[3] is 96 to 127
429 */ 424 */
430 425
431/* Basic routines to do above */ 426/* Basic routines to do above */
432#define SET_FLAG(xyz, p) \ 427#define SET_FLAG(obj, flg) (obj)->flag [flg] = 1
433 ((xyz)->flags[p/32] |= (1U << (p % 32))) 428#define CLEAR_FLAG(obj, flg) (obj)->flag [flg] = 0
434#define CLEAR_FLAG(xyz, p) \ 429#define QUERY_FLAG(obj, flg) (obj)->flag [flg]
435 ((xyz)->flags[p/32] &= ~(1U << (p % 32)))
436#define QUERY_FLAG(xyz, p) \
437 ((xyz)->flags[p/32] & (1U << (p % 32)))
438#define COMPARE_FLAGS(p,q) \
439 ( \
440 ((p)->flags[0] == (q)->flags[0]) && \
441 ((p)->flags[1] == (q)->flags[1]) && \
442 ((p)->flags[2] == (q)->flags[2]) && \
443 ((p)->flags[3] == (q)->flags[3]) \
444 )
445
446/* convenience macros to determine what kind of things we are dealing with */
447
448#define IS_WEAPON(op) \
449 (op->type == ARROW || op->type == BOW || op->type == WEAPON)
450
451#define IS_ARMOR(op) \
452 (op->type == ARMOUR || op->type == SHIELD || op->type == HELMET || \
453 op->type == CLOAK || op->type == BOOTS || op->type == GLOVES || \
454 op->type == BRACERS || op->type == GIRDLE)
455
456#define IS_LIVE(op) \
457 ((op->type == PLAYER || QUERY_FLAG(op, FLAG_MONSTER) || \
458 (QUERY_FLAG(op, FLAG_ALIVE) && !QUERY_FLAG(op, FLAG_GENERATOR) && \
459 !op->type == DOOR)) && (!QUERY_FLAG(op,FLAG_IS_A_TEMPLATE)))
460
461#define IS_ARROW(op) \
462 (op->type==ARROW || \
463 (op->type==SPELL_EFFECT && \
464 (op->subtype == SP_BULLET || op->subtype == SP_MAGIC_MISSILE)))
465
466/* This return TRUE if object has still randomitems which
467 * could be expanded.
468 */
469#define HAS_RANDOM_ITEMS(op) (op->randomitems && (!QUERY_FLAG(op,FLAG_IS_A_TEMPLATE)))
470 430
471/* the flags */ 431/* the flags */
472 432
473#define FLAG_ALIVE 0 /* Object can fight (or be fought) */ 433#define FLAG_ALIVE 0 /* Object can fight (or be fought) */
474#define FLAG_WIZ 1 /* Object has special privilegies */ 434#define FLAG_WIZ 1 /* Object has special privilegies */
495 455
496#define FLAG_GENERATOR 16 /* Will generate type ob->stats.food */ 456#define FLAG_GENERATOR 16 /* Will generate type ob->stats.food */
497#define FLAG_IS_THROWN 17 /* Object is designed to be thrown. */ 457#define FLAG_IS_THROWN 17 /* Object is designed to be thrown. */
498#define FLAG_AUTO_APPLY 18 458#define FLAG_AUTO_APPLY 18
499 /* Will be applied when created */ 459 /* Will be applied when created */
500#define FLAG_TREASURE 19 /* Will generate treasure when applied */ 460 // not used anywhere in the code // #define FLAG_TREASURE 19 /* Will generate treasure when applied */
501#define FLAG_PLAYER_SOLD 20 /* Object was sold to a shop by a player. */ 461#define FLAG_PLAYER_SOLD 20 /* Object was sold to a shop by a player. */
502#define FLAG_SEE_INVISIBLE 21 /* Will see invisible player */ 462#define FLAG_SEE_INVISIBLE 21 /* Will see invisible player */
503#define FLAG_CAN_ROLL 22 /* Object can be rolled */ 463#define FLAG_CAN_ROLL 22 /* Object can be rolled */
504#define FLAG_OVERLAY_FLOOR 23 /* Object is an overlay floor */ 464#define FLAG_OVERLAY_FLOOR 23 /* Object is an overlay floor */
505#define FLAG_IS_TURNABLE 24 /* Object can change face with direction */ 465#define FLAG_IS_TURNABLE 24 /* Object can change face with direction */
631#define FLAG_ACTIVATE_ON_RELEASE 106 /* connected object is activated when 'released' */ 591#define FLAG_ACTIVATE_ON_RELEASE 106 /* connected object is activated when 'released' */
632#define FLAG_IS_WATER 107 592#define FLAG_IS_WATER 107
633#define FLAG_CONTENT_ON_GEN 108 593#define FLAG_CONTENT_ON_GEN 108
634#define FLAG_IS_A_TEMPLATE 109 /* Object has no ingame life until instanciated */ 594#define FLAG_IS_A_TEMPLATE 109 /* Object has no ingame life until instanciated */
635#define FLAG_IS_BUILDABLE 110 /* Can build on item */ 595#define FLAG_IS_BUILDABLE 110 /* Can build on item */
636#define FLAG_AFK 111 /* Player is AFK */ 596#define FLAG_DESTROY_ON_DEATH 111 /* Object will be destroyed when env dies */
597
637#define NUM_FLAGS 111 /* Should always be equal to the last 598#define NUM_FLAGS 112 /* Should always be equal to the last
638 * defined flag. If you change this, 599 * defined flag + 1. If you change this,
639 * make sure you update the flag_links 600 * make sure you update the flag_links
640 * in common/loader.l 601 * in common/loader.l
641 */ 602 */
642 603
643/* Values can go up to 127 before the size of the flags array in the 604/* Values can go up to 127 before the size of the flags array in the
850 /* changing directions */ 811 /* changing directions */
851 /* this is VERTICAL movement */ 812 /* this is VERTICAL movement */
852#define LO4 15 /* bitmasks for upper and lower 4 bits from 8 bit fields */ 813#define LO4 15 /* bitmasks for upper and lower 4 bits from 8 bit fields */
853#define HI4 240 814#define HI4 240
854 815
855/*
856 * Use of the state-variable in player objects:
857 */
858
859#define ST_PLAYING 0
860#define ST_PLAY_AGAIN 1
861#define ST_ROLL_STAT 2
862#define ST_CHANGE_CLASS 3
863#define ST_CONFIRM_QUIT 4
864#define ST_CONFIGURE 5
865#define ST_GET_NAME 6
866#define ST_GET_PASSWORD 7
867#define ST_CONFIRM_PASSWORD 8
868#define ST_GET_PARTY_PASSWORD 10
869
870#define BLANK_FACE_NAME "blank.111" 816#define BLANK_FACE_NAME "blank.x11"
871#define EMPTY_FACE_NAME "empty.111" 817#define EMPTY_FACE_NAME "empty.x11"
872#define DARK_FACE1_NAME "dark1.111" 818#define DARK_FACE1_NAME "dark1.x11"
873#define DARK_FACE2_NAME "dark2.111" 819#define DARK_FACE2_NAME "dark2.x11"
874#define DARK_FACE3_NAME "dark3.111" 820#define DARK_FACE3_NAME "dark3.x11"
875#define SMOOTH_FACE_NAME "default_smoothed.111" 821#define SMOOTH_FACE_NAME "default_smoothed.111"
876 822
877/* 823/*
878 * Defines for the luck/random functions to make things more readable 824 * Defines for the luck/random functions to make things more readable
879 */ 825 */
1018#define CAN_APPLY_UNAPPLY 0x10 964#define CAN_APPLY_UNAPPLY 0x10
1019#define CAN_APPLY_UNAPPLY_MULT 0x20 965#define CAN_APPLY_UNAPPLY_MULT 0x20
1020#define CAN_APPLY_UNAPPLY_CHOICE 0x40 966#define CAN_APPLY_UNAPPLY_CHOICE 0x40
1021 967
1022/* Cut off point of when an object is put on the active list or not */ 968/* Cut off point of when an object is put on the active list or not */
1023#define MIN_ACTIVE_SPEED 0.00001 969#define MIN_ACTIVE_SPEED 1e-5
1024 970
1025/* 971/*
1026 * random() is much better than rand(). If you have random(), use it instead. 972 * random() is much better than rand(). If you have random(), use it instead.
1027 * You shouldn't need to change any of this 973 * You shouldn't need to change any of this
1028 * 974 *
1032 * 978 *
1033 * 0.94.2 - you probably shouldn't need to change any of the rand stuff 979 * 0.94.2 - you probably shouldn't need to change any of the rand stuff
1034 * here. 980 * here.
1035 */ 981 */
1036 982
1037#ifdef HAVE_SRANDOM
1038# define RANDOM() random() 983#define RANDOM() random()
1039# define SRANDOM(xyz) srandom(xyz) 984#define SRANDOM(xyz) srandom(xyz)
1040#else
1041# ifdef HAVE_SRAND48
1042# define RANDOM() lrand48()
1043# define SRANDOM(xyz) srand48(xyz)
1044# else
1045# ifdef HAVE_SRAND
1046# define RANDOM() rand()
1047# define SRANDOM(xyz) srand(xyz)
1048# else
1049# error "Could not find a usable random routine"
1050# endif
1051# endif
1052#endif
1053 985
1054/* Returns the weight of the given object. Note: it does not take the number of 986/* Returns the weight of the given object. Note: it does not take the number of
1055 * items (nrof) into account. 987 * items (nrof) into account.
1056 */ 988 */
1057#define WEIGHT(op) (op->nrof?op->weight:op->weight+op->carrying) 989#define WEIGHT(op) (op->nrof?op->weight:op->weight+op->carrying)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines