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.7 by root, Sun Aug 27 13:02:03 2006 UTC vs.
Revision 1.8 by root, Tue Aug 29 08:01:36 2006 UTC

1/* 1/*
2 * static char *rcsid_define_h = 2 * static char *rcsid_define_h =
3 * "$Id: define.h,v 1.7 2006/08/27 13:02:03 root Exp $"; 3 * "$Id: define.h,v 1.8 2006/08/29 08:01:36 root Exp $";
4 */ 4 */
5 5
6/* 6/*
7 CrossFire, A Multiplayer game for X-windows 7 CrossFire, A Multiplayer game for X-windows
8 8
161#define PLAYERMOVER 40 161#define PLAYERMOVER 40
162#define TELEPORTER 41 162#define TELEPORTER 41
163#define CREATOR 42 163#define CREATOR 42
164#define SKILL 43 /* also see SKILL_TOOL (74) below */ 164#define SKILL 43 /* also see SKILL_TOOL (74) below */
165#define EXPERIENCE 44 /* This is basically obsolete now. It used to contain */ 165#define EXPERIENCE 44 /* This is basically obsolete now. It used to contain */
166 /* experience for broad skill categories. This value */ 166 /* experience for broad skill categories. This value */
167 /* is now automatically converteed at load time. */ 167 /* is now automatically converteed at load time. */
168#define EARTHWALL 45 168#define EARTHWALL 45
169#define GOLEM 46 169#define GOLEM 46
170/*#define BOMB 47 */ 170/*#define BOMB 47 */
171#define THROWN_OBJ 48 171#define THROWN_OBJ 48
172#define BLINDNESS 49 172#define BLINDNESS 49
173#define GOD 50 173#define GOD 50
174 174
175#define DETECTOR 51 /* peterm: detector is an object */ 175#define DETECTOR 51 /* peterm: detector is an object */
176 /* which notices the presense of */ 176 /* which notices the presense of */
177 /* another object and is triggered */ 177 /* another object and is triggered */
178 /* like buttons. */ 178 /* like buttons. */
179#define TRIGGER_MARKER 52 /* inserts an invisible, weightless */ 179#define TRIGGER_MARKER 52 /* inserts an invisible, weightless */
180 /* force into a player with a specified string WHEN TRIGGERED. */ 180 /* force into a player with a specified string WHEN TRIGGERED. */
181#define DEAD_OBJECT 53 181#define DEAD_OBJECT 53
182#define DRINK 54 182#define DRINK 54
183#define MARKER 55 /* inserts an invisible, weightless */ 183#define MARKER 55 /* inserts an invisible, weightless */
184 /* force into a player with a specified string. */ 184 /* force into a player with a specified string. */
185#define HOLY_ALTAR 56 185#define HOLY_ALTAR 56
186#define PLAYER_CHANGER 57 186#define PLAYER_CHANGER 57
187#define BATTLEGROUND 58 /* battleground, by Andreas Vogl */ 187#define BATTLEGROUND 58 /* battleground, by Andreas Vogl */
188 188
189#define PEACEMAKER 59 /* Object owned by a player which can convert */ 189#define PEACEMAKER 59 /* Object owned by a player which can convert */
190 /* a monster into a peaceful being incapable of attack. */ 190 /* a monster into a peaceful being incapable of attack. */
191#define GEM 60 191#define GEM 60
192/*#define FIRECHEST 61*/ /* FIRECHEST folded into FIREWALL */ 192/*#define FIRECHEST 61*/ /* FIRECHEST folded into FIREWALL */
193#define FIREWALL 62 193#define FIREWALL 62
194#define ANVIL 63 194#define ANVIL 63
195#define CHECK_INV 64 /* by b.t. thomas@nomad.astro.psu.edu */ 195#define CHECK_INV 64 /* by b.t. thomas@nomad.astro.psu.edu */
196#define MOOD_FLOOR 65 /* by b.t. thomas@nomad.astro.psu.edu 196#define MOOD_FLOOR 65 /* by b.t. thomas@nomad.astro.psu.edu
197 * values of last_sp set how to change: 197 * values of last_sp set how to change:
198 * 0 = furious, all monsters become aggressive 198 * 0 = furious, all monsters become aggressive
199 * 1 = angry, all but friendly become aggressive 199 * 1 = angry, all but friendly become aggressive
200 * 2 = calm, all aggressive monsters calm down 200 * 2 = calm, all aggressive monsters calm down
201 * 3 = sleep, all monsters fall asleep 201 * 3 = sleep, all monsters fall asleep
202 * 4 = charm, monsters become pets */ 202 * 4 = charm, monsters become pets */
203#define EXIT 66 203#define EXIT 66
204#define ENCOUNTER 67 204#define ENCOUNTER 67
205#define SHOP_FLOOR 68 205#define SHOP_FLOOR 68
206#define SHOP_MAT 69 206#define SHOP_MAT 69
207#define RING 70 207#define RING 70
421 * flags[2] is 64 to 95 421 * flags[2] is 64 to 95
422 * flags[3] is 96 to 127 422 * flags[3] is 96 to 127
423 */ 423 */
424/* Basic routines to do above */ 424/* Basic routines to do above */
425#define SET_FLAG(xyz, p) \ 425#define SET_FLAG(xyz, p) \
426 ((xyz)->flags[p/32] |= (1U << (p % 32))) 426 ((xyz)->flags[p/32] |= (1U << (p % 32)))
427#define CLEAR_FLAG(xyz, p) \ 427#define CLEAR_FLAG(xyz, p) \
428 ((xyz)->flags[p/32] &= ~(1U << (p % 32))) 428 ((xyz)->flags[p/32] &= ~(1U << (p % 32)))
429#define QUERY_FLAG(xyz, p) \ 429#define QUERY_FLAG(xyz, p) \
430 ((xyz)->flags[p/32] & (1U << (p % 32))) 430 ((xyz)->flags[p/32] & (1U << (p % 32)))
431#define COMPARE_FLAGS(p,q) \ 431#define COMPARE_FLAGS(p,q) \
432 ( \ 432 ( \
433 ((p)->flags[0] == (q)->flags[0]) && \ 433 ((p)->flags[0] == (q)->flags[0]) && \
434 ((p)->flags[1] == (q)->flags[1]) && \ 434 ((p)->flags[1] == (q)->flags[1]) && \
435 ((p)->flags[2] == (q)->flags[2]) && \ 435 ((p)->flags[2] == (q)->flags[2]) && \
436 ((p)->flags[3] == (q)->flags[3]) \ 436 ((p)->flags[3] == (q)->flags[3]) \
437 ) 437 )
438/* convenience macros to determine what kind of things we are dealing with */ 438/* convenience macros to determine what kind of things we are dealing with */
439 439
440#define IS_WEAPON(op) \ 440#define IS_WEAPON(op) \
441 (op->type == ARROW || op->type == BOW || op->type == WEAPON) 441 (op->type == ARROW || op->type == BOW || op->type == WEAPON)
442 442
443#define IS_ARMOR(op) \ 443#define IS_ARMOR(op) \
444 (op->type == ARMOUR || op->type == SHIELD || op->type == HELMET || \ 444 (op->type == ARMOUR || op->type == SHIELD || op->type == HELMET || \
445 op->type == CLOAK || op->type == BOOTS || op->type == GLOVES || \ 445 op->type == CLOAK || op->type == BOOTS || op->type == GLOVES || \
446 op->type == BRACERS || op->type == GIRDLE) 446 op->type == BRACERS || op->type == GIRDLE)
447 447
448#define IS_LIVE(op) \ 448#define IS_LIVE(op) \
449 ((op->type == PLAYER || QUERY_FLAG(op, FLAG_MONSTER) || \ 449 ((op->type == PLAYER || QUERY_FLAG(op, FLAG_MONSTER) || \
450 (QUERY_FLAG(op, FLAG_ALIVE) && !QUERY_FLAG(op, FLAG_GENERATOR) && \ 450 (QUERY_FLAG(op, FLAG_ALIVE) && !QUERY_FLAG(op, FLAG_GENERATOR) && \
451 !op->type == DOOR)) && (!QUERY_FLAG(op,FLAG_IS_A_TEMPLATE))) 451 !op->type == DOOR)) && (!QUERY_FLAG(op,FLAG_IS_A_TEMPLATE)))
452 452
453#define IS_ARROW(op) \ 453#define IS_ARROW(op) \
454 (op->type==ARROW || \ 454 (op->type==ARROW || \
455 (op->type==SPELL_EFFECT && \ 455 (op->type==SPELL_EFFECT && \
456 (op->subtype == SP_BULLET || op->subtype == SP_MAGIC_MISSILE))) 456 (op->subtype == SP_BULLET || op->subtype == SP_MAGIC_MISSILE)))
457 457
458/* This return TRUE if object has still randomitems which 458/* This return TRUE if object has still randomitems which
459 * could be expanded. 459 * could be expanded.
460 */ 460 */
461#define HAS_RANDOM_ITEMS(op) (op->randomitems && (!QUERY_FLAG(op,FLAG_IS_A_TEMPLATE))) 461#define HAS_RANDOM_ITEMS(op) (op->randomitems && (!QUERY_FLAG(op,FLAG_IS_A_TEMPLATE)))
511#define FLAG_NO_MAGIC 41 /* Spells (some) can't pass this object */ 511#define FLAG_NO_MAGIC 41 /* Spells (some) can't pass this object */
512#define FLAG_NO_FIX_PLAYER 42 /* fix_player() won't be called */ 512#define FLAG_NO_FIX_PLAYER 42 /* fix_player() won't be called */
513#define FLAG_IS_LIGHTABLE 43 /* object can be lit */ 513#define FLAG_IS_LIGHTABLE 43 /* object can be lit */
514#define FLAG_TEAR_DOWN 44 /* at->faces[hp*animations/maxhp] at hit */ 514#define FLAG_TEAR_DOWN 44 /* at->faces[hp*animations/maxhp] at hit */
515#define FLAG_RUN_AWAY 45 /* Object runs away from nearest player \ 515#define FLAG_RUN_AWAY 45 /* Object runs away from nearest player \
516 but can still attack at a distance */ 516 but can still attack at a distance */
517/*#define FLAG_PASS_THRU 46*/ /* Objects with can_pass_thru can pass \ 517/*#define FLAG_PASS_THRU 46*/ /* Objects with can_pass_thru can pass \
518 thru this object as if it wasn't there */ 518 thru this object as if it wasn't there */
519/*#define FLAG_CAN_PASS_THRU 47*/ /* Can pass thru... */ 519/*#define FLAG_CAN_PASS_THRU 47*/ /* Can pass thru... */
520 520
521#define FLAG_PICK_UP 48 /* Can pick up */ 521#define FLAG_PICK_UP 48 /* Can pick up */
522#define FLAG_UNIQUE 49 /* Item is really unique (UNIQUE_ITEMS) */ 522#define FLAG_UNIQUE 49 /* Item is really unique (UNIQUE_ITEMS) */
523#define FLAG_NO_DROP 50 /* Object can't be dropped */ 523#define FLAG_NO_DROP 50 /* Object can't be dropped */
574/*#define FLAG_DUST 95 *//* item is a 'powder', effects throwing */ 574/*#define FLAG_DUST 95 *//* item is a 'powder', effects throwing */
575 575
576/* Start of values in flags[3] */ 576/* Start of values in flags[3] */
577#define FLAG_NO_STEAL 96 /* Item can't be stolen */ 577#define FLAG_NO_STEAL 96 /* Item can't be stolen */
578#define FLAG_ONE_HIT 97 /* Monster can only hit once before going 578#define FLAG_ONE_HIT 97 /* Monster can only hit once before going
579 * away (replaces ghosthit) 579 * away (replaces ghosthit)
580 */ 580 */
581#define FLAG_CLIENT_SENT 98 /* THIS IS A DEBUG FLAG ONLY. We use it to 581#define FLAG_CLIENT_SENT 98 /* THIS IS A DEBUG FLAG ONLY. We use it to
582 * detect cases were the server is trying 582 * detect cases were the server is trying
583 * to send an upditem when we have not 583 * to send an upditem when we have not
584 * actually sent the item. 584 * actually sent the item.
585 */ 585 */
586 586
587#define FLAG_BERSERK 99 /* monster will attack closest living 587#define FLAG_BERSERK 99 /* monster will attack closest living
588 object */ 588 object */
589#define FLAG_NEUTRAL 100 /* monster is from type neutral */ 589#define FLAG_NEUTRAL 100 /* monster is from type neutral */
590#define FLAG_NO_ATTACK 101 /* monster don't attack */ 590#define FLAG_NO_ATTACK 101 /* monster don't attack */
591#define FLAG_NO_DAMAGE 102 /* monster can't be damaged */ 591#define FLAG_NO_DAMAGE 102 /* monster can't be damaged */
592#define FLAG_OBJ_ORIGINAL 103 /* NEVER SET THIS. Item was loaded by 592#define FLAG_OBJ_ORIGINAL 103 /* NEVER SET THIS. Item was loaded by
593 * load_original_map() */ 593 * load_original_map() */
594#define FLAG_OBJ_SAVE_ON_OVL 104 /* this object should be saved on 594#define FLAG_OBJ_SAVE_ON_OVL 104 /* this object should be saved on
595 * the overlay, and is not subject to 595 * the overlay, and is not subject to
596 * decay. */ 596 * decay. */
597#define FLAG_ACTIVATE_ON_PUSH 105 /* connected object is activated when 'pushed' */ 597#define FLAG_ACTIVATE_ON_PUSH 105 /* connected object is activated when 'pushed' */
598#define FLAG_ACTIVATE_ON_RELEASE 106 /* connected object is activated when 'released' */ 598#define FLAG_ACTIVATE_ON_RELEASE 106 /* connected object is activated when 'released' */
599#define FLAG_IS_WATER 107 599#define FLAG_IS_WATER 107
600#define FLAG_CONTENT_ON_GEN 108 600#define FLAG_CONTENT_ON_GEN 108
601#define FLAG_IS_A_TEMPLATE 109 /* Object has no ingame life until instanciated*/ 601#define FLAG_IS_A_TEMPLATE 109 /* Object has no ingame life until instanciated*/
701#define EXIT_ALT_X(xyz) (xyz)->stats.maxhp 701#define EXIT_ALT_X(xyz) (xyz)->stats.maxhp
702#define EXIT_ALT_Y(xyz) (xyz)->stats.maxsp 702#define EXIT_ALT_Y(xyz) (xyz)->stats.maxsp
703 703
704/* for use by the lighting code */ 704/* for use by the lighting code */
705#define MAX_LIGHT_RADII 4 /* max radii for 'light' object, really 705#define MAX_LIGHT_RADII 4 /* max radii for 'light' object, really
706 * large values allow objects that can 706 * large values allow objects that can
707 * slow down the game */ 707 * slow down the game */
708#define MAX_DARKNESS 5 /* maximum map darkness, there is no 708#define MAX_DARKNESS 5 /* maximum map darkness, there is no
709 * practical reason to exceed this */ 709 * practical reason to exceed this */
710#define BRIGHTNESS(xyz) (xyz)->glow_radius>MAX_LIGHT_RADII? \ 710#define BRIGHTNESS(xyz) (xyz)->glow_radius>MAX_LIGHT_RADII? \
711 MAX_LIGHT_RADII:(xyz)->glow_radius; 711 MAX_LIGHT_RADII:(xyz)->glow_radius;
712 712
713#define F_BUY 0 713#define F_BUY 0
714#define F_SELL 1 714#define F_SELL 1
715#define F_TRUE 2 /* True value of item, unadjusted */ 715#define F_TRUE 2 /* True value of item, unadjusted */
716#define F_NO_BARGAIN 4 /* combine with F_BUY or F_SELL to disable bargaining calc */ 716#define F_NO_BARGAIN 4 /* combine with F_BUY or F_SELL to disable bargaining calc */
921 921
922 /* Optional flags, for bitwise or with a basic flag */ 922 /* Optional flags, for bitwise or with a basic flag */
923 AP_NO_MERGE = 16, 923 AP_NO_MERGE = 16,
924 AP_IGNORE_CURSE = 32, 924 AP_IGNORE_CURSE = 32,
925 AP_PRINT = 64 /* Print what to do, don't actually do it */ 925 AP_PRINT = 64 /* Print what to do, don't actually do it */
926 /* Note this is supported in all the functions */ 926 /* Note this is supported in all the functions */
927 927
928}; 928};
929 929
930/* Bitmask values for 'can_apply_object()' return values. 930/* Bitmask values for 'can_apply_object()' return values.
931 * the CAN_APPLY_ prefix is to just note what function the 931 * the CAN_APPLY_ prefix is to just note what function the

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines