/* ************************************************************************
* File: objs.h Part of LostLands *
* Usage: header file for central structures and contstants *
* *
* All rights reserved. See license.doc for complete information. *
* *
* Copyright (C) 1993, 94 by the Trustees of the Johns Hopkins University *
* CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991. *
************************************************************************ */
/* preamble *************************************************************/
#include <sys/types.h>
/* Character equipment positions: used as index for char_data.equipment[] */
/* NOTE: Don't confuse these constants with the ITEM_ bitvectors
which control the valid places you can wear a piece of equipment */
#define WEAR_LIGHT 0
#define WEAR_FINGER_R 1
#define WEAR_FINGER_L 2
#define WEAR_NECK_1 3
#define WEAR_NECK_2 4
#define WEAR_BODY 5
#define WEAR_HEAD 6
#define WEAR_LEGS 7
#define WEAR_FEET 8
#define WEAR_HANDS 9
#define WEAR_ARMS 10
#define WEAR_SHIELD 11
#define WEAR_ABOUT 12
#define WEAR_WAIST 13
#define WEAR_WRIST_R 14
#define WEAR_WRIST_L 15
#define WEAR_WIELD 16
#define WEAR_DUALWIELD 17
#define WEAR_HOLD 18
#define WEAR_BACKPACK 19
#define WEAR_FACE 20
/* object-related defines ********************************************/
/* Item types: used by obj_data.obj_flags.type_flag */
#define ITEM_LIGHT 1 /* Item is a light source */
#define ITEM_SCROLL 2 /* Item is a scroll */
#define ITEM_WAND 3 /* Item is a wand */
#define ITEM_STAFF 4 /* Item is a staff */
#define ITEM_WEAPON 5 /* Item is a weapon */
#define ITEM_FIREWEAPON 6 /* Unimplemented */
#define ITEM_MISSILE 7 /* Unimplemented */
#define ITEM_TREASURE 8 /* Item is a treasure, not gold */
#define ITEM_ARMOR 9 /* Item is armor */
#define ITEM_POTION 10 /* Item is a potion */
#define ITEM_WORN 11 /* Unimplemented */
#define ITEM_OTHER 12 /* Misc object */
#define ITEM_TRASH 13 /* Trash - shopkeeps won't buy */
#define ITEM_TRAP 14 /* Unimplemented */
#define ITEM_CONTAINER 15 /* Item is a container */
#define ITEM_NOTE 16 /* Item is note */
#define ITEM_DRINKCON 17 /* Item is a drink container */
#define ITEM_KEY 18 /* Item is a key */
#define ITEM_FOOD 19 /* Item is food */
#define ITEM_MONEY 20 /* Item is money (gold) */
#define ITEM_PEN 21 /* Item is a pen */
#define ITEM_BOAT 22 /* Item is a boat */
#define ITEM_FOUNTAIN 23 /* Item is a fountain */
#define ITEM_FLIGHT 24 /* Item provides flight */
/* Take/Wear flags: used by obj_data.obj_flags.wear_flags */
#define ITEM_WEAR_TAKE (1 << 0) /* Item can be takes */
#define ITEM_WEAR_FINGER (1 << 1) /* Can be worn on finger */
#define ITEM_WEAR_NECK (1 << 2) /* Can be worn around neck */
#define ITEM_WEAR_BODY (1 << 3) /* Can be worn on body */
#define ITEM_WEAR_HEAD (1 << 4) /* Can be worn on head */
#define ITEM_WEAR_LEGS (1 << 5) /* Can be worn on legs */
#define ITEM_WEAR_FEET (1 << 6) /* Can be worn on feet */
#define ITEM_WEAR_HANDS (1 << 7) /* Can be worn on hands */
#define ITEM_WEAR_ARMS (1 << 8) /* Can be worn on arms */
#define ITEM_WEAR_SHIELD (1 << 9) /* Can be used as a shield */
#define ITEM_WEAR_ABOUT (1 << 10) /* Can be worn about body */
#define ITEM_WEAR_WAIST (1 << 11) /* Can be worn around waist */
#define ITEM_WEAR_WRIST (1 << 12) /* Can be worn on wrist */
#define ITEM_WEAR_WIELD (1 << 13) /* Can be wielded */
#define ITEM_WEAR_HOLD (1 << 14) /* Can be held */
#define ITEM_WEAR_BACK (1 << 15) /* Can be backpack */
#define ITEM_WEAR_FACE (1 << 16) /* Can be worn on face */
/* Extra object flags: used by obj_data.obj_flags.extra_flags */
#define ITEM_GLOW (1 << 0) /* Item is glowing */
#define ITEM_HUM (1 << 1) /* Item is humming */
#define ITEM_NORENT (1 << 2) /* Item cannot be rented */
#define ITEM_NODONATE (1 << 3) /* Item cannot be donated */
#define ITEM_NOINVIS (1 << 4) /* Item cannot be made invis */
#define ITEM_INVISIBLE (1 << 5) /* Item is invisible */
#define ITEM_MAGIC (1 << 6) /* Item is magical */
#define ITEM_NODROP (1 << 7) /* Item is cursed: can't drop */
#define ITEM_BLESS (1 << 8) /* Item is blessed */
#define ITEM_ANTI_GOOD (1 << 9) /* Not usable by good people */
#define ITEM_ANTI_EVIL (1 << 10) /* Not usable by evil people */
#define ITEM_ANTI_NEUTRAL (1 << 11) /* Not usable by neutral people */
#define ITEM_ANTI_MAGIC_USER (1 << 12) /* Not usable by mages */
#define ITEM_ANTI_CLERIC (1 << 13) /* Not usable by clerics */
#define ITEM_ANTI_THIEF (1 << 14) /* Not usable by thieves */
#define ITEM_ANTI_WARRIOR (1 << 15) /* Not usable by warriors */
#define ITEM_NOSELL (1 << 16) /* Shopkeepers won't touch it */
#define ITEM_ANTI_HUMAN (1 << 17) /* Not usable by Humans */
#define ITEM_ANTI_ELF (1 << 18) /* Not usable by elves */
#define ITEM_ANTI_DWARF (1 << 19) /* Not usable by dwarves */
#define ITEM_ANTI_GNOME (1 << 20) /* Not usable by gnomes */
#define ITEM_ANTI_HALFLING (1 << 21) /* Not usable by halflings */
#define ITEM_ANTI_MINOTAUR (1 << 22) /* Not usable by minotaurs */
#define ITEM_ANTI_PIXIE (1 << 23) /* Not usable by pixies */
#define ITEM_PLUSONE (1 << 24) /* Item harm upto AFF_PLUSONE */
#define ITEM_PLUSTWO (1 << 25) /* Item harm upto AFF_PLUSTWO */
#define ITEM_PLUSTHREE (1 << 26) /* Item harm upto AFF_PLUSTHREE */
#define ITEM_PLUSFOUR (1 << 27) /* Item harm upto AFF_PLUSFOUR */
#define ITEM_PLUSFIVE (1 << 28) /* Item harm upto AFF_PLUSFIVE */
#define ITEM_SILVER (1 << 29) /* Item harm AFF_SILVER */
#define ITEM_NOBREAK (1 << 30) /* Item can't be broken */
/* Extra object flags: used by obj_data.obj_flags.extra_flags2 */
#define ITEM2_RETURNING (1 << 0) /* Boomerang item, returns */
#define ITEM2_NOREMOVE (1 << 1) /* Can't be removed */
#define ITEM2_ENGRAVED (1 << 2) /* Engraved */
#define ITEM2_2HANDED (1 << 3) /* Needs two hands to wield */
#define ITEM2_AUTOENGRAVE (1 << 4) /* AutoEngrave to first owner */
/* Modifier constants used with obj affects ('A' fields) */
#define APPLY_NONE 0 /* No effect */
#define APPLY_STR 1 /* Apply to strength */
#define APPLY_DEX 2 /* Apply to dexterity */
#define APPLY_INT 3 /* Apply to constitution */
#define APPLY_WIS 4 /* Apply to wisdom */
#define APPLY_CON 5 /* Apply to constitution */
#define APPLY_CHA 6 /* Apply to charisma */
#define APPLY_CLASS 7 /* Reserved */
#define APPLY_LEVEL 8 /* Reserved */
#define APPLY_AGE 9 /* Apply to age */
#define APPLY_CHAR_WEIGHT 10 /* Apply to weight */
#define APPLY_CHAR_HEIGHT 11 /* Apply to height */
#define APPLY_MANA 12 /* Apply to max mana */
#define APPLY_HIT 13 /* Apply to max hit points */
#define APPLY_MOVE 14 /* Apply to max move points */
#define APPLY_GOLD 15 /* Reserved */
#define APPLY_EXP 16 /* Reserved */
#define APPLY_AC 17 /* Apply to Armor Class */
#define APPLY_HITROLL 18 /* Apply to hitroll */
#define APPLY_DAMROLL 19 /* Apply to damage roll */
#define APPLY_SAVING_PARA 20 /* Apply to save throw: paralz */
#define APPLY_SAVING_ROD 21 /* Apply to save throw: rods */
#define APPLY_SAVING_PETRI 22 /* Apply to save throw: petrif */
#define APPLY_SAVING_BREATH 23 /* Apply to save throw: breath */
#define APPLY_SAVING_SPELL 24 /* Apply to save throw: spells */
/* Container flags - value[1] */
#define CONT_CLOSEABLE (1 << 0) /* Container can be closed */
#define CONT_PICKPROOF (1 << 1) /* Container is pickproof */
#define CONT_CLOSED (1 << 2) /* Container is closed */
#define CONT_LOCKED (1 << 3) /* Container is locked */
/* Some different kind of liquids for use in values of drink containers */
#define LIQ_WATER 0
#define LIQ_BEER 1
#define LIQ_WINE 2
#define LIQ_ALE 3
#define LIQ_DARKALE 4
#define LIQ_WHISKY 5
#define LIQ_LEMONADE 6
#define LIQ_FIREBRT 7
#define LIQ_LOCALSPC 8
#define LIQ_SLIME 9
#define LIQ_MILK 10
#define LIQ_TEA 11
#define LIQ_COFFE 12
#define LIQ_BLOOD 13
#define LIQ_SALTWATER 14
#define LIQ_CLEARWATER 15