1 | /* |
1 | /* |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
3 | * |
3 | * |
4 | * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
4 | * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
5 | * Copyright (©) 2003-2005,2007 Mark Wedel & Crossfire Development Team |
5 | * Copyright (©) 2003-2005,2007 Mark Wedel & Crossfire Development Team |
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
7 | * |
7 | * |
8 | * Deliantra is free software: you can redistribute it and/or modify |
8 | * Deliantra is free software: you can redistribute it and/or modify |
9 | * 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 |
… | |
… | |
74 | |
74 | |
75 | #define MAX_ANIMATIONS 256 |
75 | #define MAX_ANIMATIONS 256 |
76 | |
76 | |
77 | #define MAX_NAME 48 |
77 | #define MAX_NAME 48 |
78 | #define MAX_EXT_TITLE 98 |
78 | #define MAX_EXT_TITLE 98 |
|
|
79 | |
|
|
80 | #define ATTUNE_REPELL 16 // levels diff for attune/repell |
79 | |
81 | |
80 | //TODO: remove all calls to fatal and replace them by cleanup |
82 | //TODO: remove all calls to fatal and replace them by cleanup |
81 | #define OUT_OF_MEMORY 0 |
83 | #define OUT_OF_MEMORY 0 |
82 | #define MAP_ERROR 1 |
84 | #define MAP_ERROR 1 |
83 | #define ARCHTABLE_TOO_SMALL 2 // unused |
85 | #define ARCHTABLE_TOO_SMALL 2 // unused |
… | |
… | |
381 | * freearr, add these values. <= SIZEOFFREE1 will get you |
383 | * freearr, add these values. <= SIZEOFFREE1 will get you |
382 | * within 1 space. <= SIZEOFFREE2 wll get you withing |
384 | * within 1 space. <= SIZEOFFREE2 wll get you withing |
383 | * 2 spaces, and the entire array (< SIZEOFFREE) is |
385 | * 2 spaces, and the entire array (< SIZEOFFREE) is |
384 | * three spaces |
386 | * three spaces |
385 | */ |
387 | */ |
|
|
388 | #define SIZEOFFREE0 0 |
386 | #define SIZEOFFREE1 8 |
389 | #define SIZEOFFREE1 8 |
387 | #define SIZEOFFREE2 24 |
390 | #define SIZEOFFREE2 24 |
|
|
391 | #define SIZEOFFREE3 48 |
388 | #define SIZEOFFREE 49 |
392 | #define SIZEOFFREE 49 |
389 | |
393 | |
390 | #define NROF_SOUNDS (23 + NROFREALSPELLS) /* Number of sounds */ |
394 | #define NROF_SOUNDS (23 + NROFREALSPELLS) /* Number of sounds */ |
391 | |
395 | |
392 | /* |
396 | /* |
393 | * If any FLAG's are added or changed, make sure the flag_names structure in |
397 | * If any FLAG's are added or changed, make sure the flag_names structure in |
… | |
… | |
417 | |
421 | |
418 | #define FLAG_ANIMATE 11 /* The object looks at archetype for faces */ |
422 | #define FLAG_ANIMATE 11 /* The object looks at archetype for faces */ |
419 | |
423 | |
420 | /*#define FLAG_SLOW_MOVE 12*//* Uses the stats.exp/1000 to slow down */ |
424 | /*#define FLAG_SLOW_MOVE 12*//* Uses the stats.exp/1000 to slow down */ |
421 | /*#define FLAG_FLYING 13*//* Not affected by WALK_ON or SLOW_MOVE) */ |
425 | /*#define FLAG_FLYING 13*//* Not affected by WALK_ON or SLOW_MOVE) */ |
|
|
426 | #define FLAG_HIDDEN 13 /* hidden monster (not invisible), TODO: used how, what for? TODO: why not saved? */ |
422 | |
427 | |
423 | #define FLAG_MONSTER 14 /* Will attack players */ |
428 | #define FLAG_MONSTER 14 /* Will attack players */ |
424 | #define FLAG_FRIENDLY 15 /* Will help players */ |
429 | #define FLAG_FRIENDLY 15 /* Will help players */ |
425 | #define FLAG_GENERATOR 16 /* Will generate type ob->stats.food */ |
430 | #define FLAG_GENERATOR 16 /* Will generate type ob->stats.food */ |
426 | #define FLAG_IS_THROWN 17 /* Object is designed to be thrown. */ |
431 | #define FLAG_IS_THROWN 17 /* Object is designed to be thrown. */ |
… | |
… | |
520 | |
525 | |
521 | #define FLAG_NO_STEAL 96 /* Item can't be stolen */ |
526 | #define FLAG_NO_STEAL 96 /* Item can't be stolen */ |
522 | #define FLAG_ONE_HIT 97 /* Monster can only hit once before going |
527 | #define FLAG_ONE_HIT 97 /* Monster can only hit once before going |
523 | * away (replaces ghosthit) |
528 | * away (replaces ghosthit) |
524 | */ |
529 | */ |
525 | #define FLAG_CLIENT_SENT 98 /* THIS IS A DEBUG FLAG ONLY. We use it to |
530 | #define FLAG_DEBUG 98 // formerly FLAG_CLIENT_SENT, not used except for debugging |
526 | * detect cases were the server is trying |
|
|
527 | * to send an upditem when we have not |
|
|
528 | * actually sent the item. |
|
|
529 | */ |
|
|
530 | |
531 | |
531 | #define FLAG_BERSERK 99 /* monster will attack closest living |
532 | #define FLAG_BERSERK 99 /* monster will attack closest living |
532 | object */ |
533 | object */ |
533 | #define FLAG_NEUTRAL 100 /* monster is from type neutral */ |
534 | #define FLAG_NEUTRAL 100 /* monster is from type neutral */ |
534 | #define FLAG_NO_ATTACK 101 /* monster doesn't attack */ |
535 | #define FLAG_NO_ATTACK 101 /* monster doesn't attack */ |
… | |
… | |
586 | * |
587 | * |
587 | */ |
588 | */ |
588 | #define OB_TYPE_MOVE_BLOCK(ob1, type) \ |
589 | #define OB_TYPE_MOVE_BLOCK(ob1, type) \ |
589 | ((type) && (ob1->move_type & type) == ob1->move_type) |
590 | ((type) && (ob1->move_type & type) == ob1->move_type) |
590 | |
591 | |
591 | #define SET_GENERATE_TYPE(xyz,va) (xyz)->stats.sp=(va) |
|
|
592 | #define GENERATE_TYPE(xyz) ((xyz)->stats.sp) |
|
|
593 | #define GENERATE_SPEED(xyz) ((xyz)->stats.maxsp) /* if(!RANDOM()%<speed>) */ |
592 | #define GENERATE_SPEED(xyz) ((xyz)->stats.maxsp) /* if(!RANDOM()%<speed>) */ |
594 | |
593 | |
595 | #define EXIT_PATH(xyz) (xyz)->slaying |
594 | #define EXIT_PATH(xyz) (xyz)->slaying |
596 | #define EXIT_LEVEL(xyz) (xyz)->stats.food |
595 | #define EXIT_LEVEL(xyz) (xyz)->stats.food |
597 | #define EXIT_X(xyz) (xyz)->stats.hp |
596 | #define EXIT_X(xyz) (xyz)->stats.hp |
598 | #define EXIT_Y(xyz) (xyz)->stats.sp |
597 | #define EXIT_Y(xyz) (xyz)->stats.sp |
599 | #define EXIT_ALT_X(xyz) (xyz)->stats.maxhp |
598 | #define EXIT_ALT_X(xyz) (xyz)->stats.maxhp |
600 | #define EXIT_ALT_Y(xyz) (xyz)->stats.maxsp |
599 | #define EXIT_ALT_Y(xyz) (xyz)->stats.maxsp |
601 | |
600 | |
602 | /* for use by the lighting code */ |
601 | /* for use by the lighting code */ |
603 | #define MAX_LIGHT_RADII 4 /* max radii for 'light' object, really |
602 | #define MAX_LIGHT_RADIUS 9 /* max radius for 'light' object, really |
604 | * large values allow objects that can |
603 | * large values allow objects that can |
605 | * slow down the game */ |
604 | * slow down the game */ |
606 | #define MAX_DARKNESS 5 /* maximum map darkness, there is no |
605 | #define MAX_DARKNESS 5 /* maximum map darkness, there is no |
607 | * practical reason to exceed this */ |
606 | * practical reason to exceed this */ |
|
|
607 | #define LOS_MAX 4 /* max. los value for non-blocked spaces */ |
|
|
608 | #define LOS_BLOCKED 100 /* fully blocked spaces */ |
608 | #define BRIGHTNESS(xyz) (xyz)->glow_radius>MAX_LIGHT_RADII? \ |
609 | #define BRIGHTNESS(xyz) (xyz)->glow_radius>MAX_LIGHT_RADII? \ |
609 | MAX_LIGHT_RADII:(xyz)->glow_radius; |
610 | MAX_LIGHT_RADII:(xyz)->glow_radius; |
610 | |
611 | |
611 | #define F_BUY 0 |
612 | #define F_BUY 0 |
612 | #define F_SELL 1 |
613 | #define F_SELL 1 |
… | |
… | |
904 | #define NDI_CLIENT_MASK 0xff // what the client is allowed to see |
905 | #define NDI_CLIENT_MASK 0xff // what the client is allowed to see |
905 | |
906 | |
906 | #define NDI_UNIQUE 0x1000 /* Print this out immediately, don't buffer */ |
907 | #define NDI_UNIQUE 0x1000 /* Print this out immediately, don't buffer */ |
907 | #define NDI_ALL 0x2000 /* Inform all players of this message */ |
908 | #define NDI_ALL 0x2000 /* Inform all players of this message */ |
908 | #define NDI_DEF 0x4000 // ignore colour for channel protocol |
909 | #define NDI_DEF 0x4000 // ignore colour for channel protocol |
|
|
910 | #define NDI_VERBATIM 0x8000 // do not expand cfpod, send text verbatim |
909 | |
911 | |
910 | #endif /* DEFINE_H */ |
912 | #endif /* DEFINE_H */ |
911 | |
913 | |