1/* SCCS Id: @(#)prop.h 3.4 1999/07/07 */ 2/* Copyright (c) 1989 Mike Threepoint */ 3/* NetHack may be freely redistributed. See license for details. */ 4 5#ifndef PROP_H 6#define PROP_H 7 8/*** What the properties are ***/ 9#define FIRE_RES 1 10#define COLD_RES 2 11#define SLEEP_RES 3 12#define DISINT_RES 4 13#define SHOCK_RES 5 14#define POISON_RES 6 15#define ACID_RES 7 16#define STONE_RES 8 17/* note: for the first eight properties, MR_xxx == (1 << (xxx_RES - 1)) */ 18#define ADORNED 9 19#define REGENERATION 10 20#define SEARCHING 11 21#define SEE_INVIS 12 22#define INVIS 13 23#define TELEPORT 14 24#define TELEPORT_CONTROL 15 25#define POLYMORPH 16 26#define POLYMORPH_CONTROL 17 27#define LEVITATION 18 28#define STEALTH 19 29#define AGGRAVATE_MONSTER 20 30#define CONFLICT 21 31#define PROTECTION 22 32#define PROT_FROM_SHAPE_CHANGERS 23 33#define WARNING 24 34#define TELEPAT 25 35#define FAST 26 36#define STUNNED 27 37#define CONFUSION 28 38#define SICK 29 39#define BLINDED 30 40#define SLEEPING 31 41#define WOUNDED_LEGS 32 42#define STONED 33 43#define STRANGLED 34 44#define HALLUC 35 45#define HALLUC_RES 36 46#define FUMBLING 37 47#define JUMPING 38 48#define WWALKING 39 49#define HUNGER 40 50#define GLIB 41 51#define REFLECTING 42 52#define LIFESAVED 43 53#define ANTIMAGIC 44 54#define DISPLACED 45 55#define CLAIRVOYANT 46 56#define VOMITING 47 57#define ENERGY_REGENERATION 48 58#define MAGICAL_BREATHING 49 59#define HALF_SPDAM 50 60#define HALF_PHDAM 51 61#define SICK_RES 52 62#define DRAIN_RES 53 63#define WARN_UNDEAD 54 64#define INVULNERABLE 55 65#define FREE_ACTION 56 66#define SWIMMING 57 67#define SLIMED 58 68#define FIXED_ABIL 59 69#define FLYING 60 70#define UNCHANGING 61 71#define PASSES_WALLS 62 72#define SLOW_DIGESTION 63 73#define INFRAVISION 64 74#define WARN_OF_MON 65 75#define DETECT_MONSTERS 66 76#define LAST_PROP (DETECT_MONSTERS) 77 78/*** Where the properties come from ***/ 79/* Definitions were moved here from obj.h and you.h */ 80struct prop { 81 /*** Properties conveyed by objects ***/ 82 long extrinsic; 83 /* Armor */ 84# define W_ARM 0x00000001L /* Body armor */ 85# define W_ARMC 0x00000002L /* Cloak */ 86# define W_ARMH 0x00000004L /* Helmet/hat */ 87# define W_ARMS 0x00000008L /* Shield */ 88# define W_ARMG 0x00000010L /* Gloves/gauntlets */ 89# define W_ARMF 0x00000020L /* Footwear */ 90#ifdef TOURIST 91# define W_ARMU 0x00000040L /* Undershirt */ 92# define W_ARMOR (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF | W_ARMU) 93#else 94# define W_ARMOR (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF) 95#endif 96 /* Weapons and artifacts */ 97# define W_WEP 0x00000100L /* Wielded weapon */ 98# define W_QUIVER 0x00000200L /* Quiver for (f)iring ammo */ 99# define W_SWAPWEP 0x00000400L /* Secondary weapon */ 100# define W_ART 0x00001000L /* Carrying artifact (not really worn) */ 101# define W_ARTI 0x00002000L /* Invoked artifact (not really worn) */ 102 /* Amulets, rings, tools, and other items */ 103# define W_AMUL 0x00010000L /* Amulet */ 104# define W_RINGL 0x00020000L /* Left ring */ 105# define W_RINGR 0x00040000L /* Right ring */ 106# define W_RING (W_RINGL | W_RINGR) 107# define W_TOOL 0x00080000L /* Eyewear */ 108#ifdef STEED 109# define W_SADDLE 0x00100000L /* KMH -- For riding monsters */ 110#endif 111# define W_BALL 0x00200000L /* Punishment ball */ 112# define W_CHAIN 0x00400000L /* Punishment chain */ 113 114 /*** Property is blocked by an object ***/ 115 long blocked; /* Same assignments as extrinsic */ 116 117 /*** Timeouts, permanent properties, and other flags ***/ 118 long intrinsic; 119 /* Timed properties */ 120# define TIMEOUT 0x00ffffffL /* Up to 16 million turns */ 121 /* Permanent properties */ 122# define FROMEXPER 0x01000000L /* Gain/lose with experience, for role */ 123# define FROMRACE 0x02000000L /* Gain/lose with experience, for race */ 124# define FROMOUTSIDE 0x04000000L /* By corpses, prayer, thrones, etc. */ 125# define INTRINSIC (FROMOUTSIDE|FROMRACE|FROMEXPER) 126 /* Control flags */ 127# define I_SPECIAL 0x10000000L /* Property is controllable */ 128}; 129 130/*** Definitions for backwards compatibility ***/ 131#define LEFT_RING W_RINGL 132#define RIGHT_RING W_RINGR 133#define LEFT_SIDE LEFT_RING 134#define RIGHT_SIDE RIGHT_RING 135#define BOTH_SIDES (LEFT_SIDE | RIGHT_SIDE) 136#define WORN_ARMOR W_ARM 137#define WORN_CLOAK W_ARMC 138#define WORN_HELMET W_ARMH 139#define WORN_SHIELD W_ARMS 140#define WORN_GLOVES W_ARMG 141#define WORN_BOOTS W_ARMF 142#define WORN_AMUL W_AMUL 143#define WORN_BLINDF W_TOOL 144#ifdef TOURIST 145#define WORN_SHIRT W_ARMU 146#endif 147 148#endif /* PROP_H */ 149