--- deliantra/server/include/define.h 2010/04/04 04:10:47 1.119 +++ deliantra/server/include/define.h 2010/04/06 21:11:48 1.124 @@ -69,12 +69,6 @@ #define ATTUNE_REPELL 16 // levels diff for attune/repell -//TODO: remove all calls to fatal and replace them by cleanup -#define OUT_OF_MEMORY 0 -#define MAP_ERROR 1 -#define ARCHTABLE_TOO_SMALL 2 // unused -#define TOO_MANY_ERRORS 3 - /* TYPE DEFINES */ /* Only add new values to this list if somewhere in the program code, @@ -183,7 +177,7 @@ #define SHOP_FLOOR 68 #define SHOP_MAT 69 #define RING 70 -#define FLOOR 71 /* this is a floor tile -> native layer 0 */ +//#define FLOOR 71 /* this is a floor tile -> native layer 0 */ // UNUSED??? #define FLESH 72 /* animal 'body parts' -b.t. */ #define INORGANIC 73 /* metals and minerals */ #define SKILL_TOOL 74 /* Allows the use of a skill */ @@ -288,6 +282,35 @@ /* END TYPE DEFINE */ +typedef std::bitset typeset; + +/* These are the items that currently can change digestion, regeneration, + * spell point recovery and mana point recovery. Seems sort of an arbitary + * list, but other items store other info into stats array. + * As a special exception, bows use stats.sp for their own purposes. + */ +static const struct digest_types : typeset +{ + digest_types () + { + set (WEAPON); + set (BOW); + set (ARMOUR); + set (HELMET); + set (SHIELD); + set (RING); + set (BOOTS); + set (GLOVES); + set (AMULET); + set (GIRDLE); + set (BRACERS); + set (CLOAK); + set (DISEASE); + set (FORCE); + set (SKILL); + } +} digest_types; + // maximum supported subtype number + 1, can be increased to 256 // currently (2007-09) in use: 50 #define NUM_SUBTYPES 64 @@ -593,8 +616,8 @@ * practical reason to exceed this */ #define LOS_MAX 4 /* max. los value for non-blocked spaces */ #define LOS_BLOCKED 100 /* fully blocked spaces */ -#define BRIGHTNESS(xyz) (xyz)->glow_radius>MAX_LIGHT_RADII? \ - MAX_LIGHT_RADII:(xyz)->glow_radius; +#define BRIGHTNESS(xyz) (xyz)->glow_radius>MAX_LIGHT_RADII ? \ + MAX_LIGHT_RADII : (xyz)->glow_radius; // player position in blocked_los code #define LOS_X0 (MAP_CLIENT_X / 2 - 1) #define LOS_Y0 (MAP_CLIENT_Y / 2 - 1)