/**************************************************************************/
// dawn.h - heaps of game types defines
/***************************************************************************
* The Dawn of Time v1.69r (c)1997-2004 Michael Garratt *
* >> A number of people have contributed to the Dawn codebase, with the *
* majority of code written by Michael Garratt - www.dawnoftime.org *
* >> To use this source code, you must fully comply with all the licenses *
* in licenses.txt... In particular, you may not remove this copyright *
* notice. *
***************************************************************************
* >> Original Diku Mud copyright (c)1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, & Katja Nyboe. *
* >> Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* >> ROM 2.4 is copyright 1993-1995 Russ Taylor and has been brought to *
* you by the ROM consortium: Russ Taylor(rtaylor@pacinfo.com), *
* Gabrielle Taylor(gtaylor@pacinfo.com) & Brian Moore(rom@rom.efn.org) *
* >> Oblivion 1.2 is copyright 1996 Wes Wagner *
**************************************************************************/
// below line used for global varibles system
#define EXTERN extern
// Connected state for a channel - rest in nanny.h
#define CON_PLAYING 0
/**************************************************************************/
#define NOTE_NOTE 0
#define NOTE_IDEA 1
#define NOTE_PENALTY 2
#define NOTE_NEWS 3
#define NOTE_CHANGES 4
#define NOTE_ANOTE 5
#define NOTE_INOTE 6
#define NOTE_MISC 7
#define NOTE_SNOTE 8
#define NOTE_PKNOTE 9
// where definitions
#define WHERE_AFFECTS 0
#define WHERE_OBJEXTRA 1
#define WHERE_IMMUNE 2
#define WHERE_RESIST 3
#define WHERE_VULN 4
#define WHERE_WEAPON 5
#define WHERE_RESTRICT 6
#define WHERE_SKILLS 7
#define WHERE_AFFECTS2 8
#define WHERE_OBJEXTRA2 9
#define WHERE_OBJECTSPELL 10 // spell objects
#define WHERE_MODIFIER 11
// bitvector flags used with object spell system
#define OBJSPELL_ACTIVE (A) // Currently affecting the player
#define OBJSPELL_IGNORE_LEVEL (B) // Will be cast on player regardless of level
// ACT bits for mobs - Used in #MOBILES.
#define ACT_IS_NPC (A) // Auto set for mobs
#define ACT_DONT_WANDER (B) // Stays in one room
#define ACT_SENTINEL (ACT_DONT_WANDER) // The old name for the DONT_WANDER flag
#define ACT_SCAVENGER (C) // Picks up objects
#define ACT_DOCILE (D) // Allows self to be mounted
#define ACT_NO_TAME (E) // is untamable
#define ACT_AGGRESSIVE (F) // Attacks PC's
#define ACT_STAY_AREA (G) // Won't leave area
#define ACT_WIMPY (H)
#define ACT_PET (I) // Auto set for pets
#define ACT_TRAIN (J) // Can train PC's
#define ACT_PRACTICE (K) // Can practice PC's
#define ACT_MPIGN_QUESTER (L) // All mobprog triggers on mob ignore quester
#define ACT_MPIGN_NONQUESTER (M) // All mobprog triggers on mob ignore nonquester
#define ACT_AMPHIBIAN (N)
#define ACT_UNDEAD (O)
#define ACT_CLERIC (Q)
#define ACT_MAGE (R)
#define ACT_THIEF (S)
#define ACT_WARRIOR (T)
#define ACT_NOALIGN (U)
#define ACT_NOPURGE (V)
#define ACT_OUTDOORS (W)
#define ACT_MOBLOG (X)
#define ACT_INDOORS (Y)
#define ACT_NOAUTOSOCIAL (Z)
#define ACT_IS_HEALER (aa)
#define ACT_GAIN (bb)
#define ACT_UPDATE_ALWAYS (cc)
#define ACT_IS_CHANGER (dd)
#define ACT_IS_UNSEEN (ee)
// (A) is left free incase an ACT2_IS_NPC flag is needed
#define ACT2_NOHUNT (B) // Not used at this stage
#define ACT2_ALLSKILLS (C)
#define ACT2_AVOIDS_ALL_ATTACKS (D)
#define ACT2_NO_TENDENCY (E)
// damage clsses
#define DAM_NONE 0
#define DAM_BASH 1
#define DAM_PIERCE 2
#define DAM_SLASH 3
#define DAM_FIRE 4
#define DAM_COLD 5
#define DAM_LIGHTNING 6
#define DAM_ACID 7
#define DAM_POISON 8
#define DAM_NEGATIVE 9
#define DAM_HOLY 10
#define DAM_ENERGY 11
#define DAM_MENTAL 12
#define DAM_DISEASE 13
#define DAM_DROWNING 14
#define DAM_LIGHT 15
#define DAM_OTHER 16
#define DAM_HARM 17
#define DAM_CHARM 18
#define DAM_SOUND 19
#define DAM_ILLUSION 20
// OFF bits for mobiles
#define OFF_AREA_ATTACK (A)
#define OFF_BACKSTAB (B)
#define OFF_BASH (C)
#define OFF_BERSERK (D)
#define OFF_DISARM (E)
#define OFF_DODGE (F)
#define OFF_FADE (G)
#define OFF_FAST (H)
#define OFF_KICK (I)
#define OFF_KICK_DIRT (J)
#define OFF_PARRY (K)
#define OFF_RESCUE (L)
#define OFF_TAIL (M)
#define OFF_TRIP (N)
#define OFF_CRUSH (O)
#define ASSIST_ALL (P)
#define ASSIST_ALIGN (Q)
#define ASSIST_RACE (R)
#define ASSIST_PLAYERS (S)
#define ASSIST_GUARD (T)
#define ASSIST_VNUM (U)
#define OFF_GORE (V)
#define OFF_UPPERCUT (W) // uncompleted
#define OFF_NECK_THRUST (X) // uncompleted
#define OFF_WEB (Y) // uncompleted
#define OFF_GAZE (Z) // uncompleted - was V
#define OFF_CIRCLE (aa)
// return values for check_imm
#define IS_NORMAL 0
#define IS_IMMUNE 1
#define IS_RESISTANT 2
#define IS_VULNERABLE 3
// IMM bits for mobs
#define IMM_SUMMON (A)
#define IMM_CHARM (B)
#define IMM_MAGIC (C)
#define IMM_WEAPON (D)
#define IMM_BASH (E)
#define IMM_PIERCE (F)
#define IMM_SLASH (G)
#define IMM_FIRE (H)
#define IMM_COLD (I)
#define IMM_LIGHTNING (J)
#define IMM_ACID (K)
#define IMM_POISON (L)
#define IMM_NEGATIVE (M)
#define IMM_HOLY (N)
#define IMM_ENERGY (O)
#define IMM_MENTAL (P)
#define IMM_DISEASE (Q)
#define IMM_DROWNING (R)
#define IMM_LIGHT (S)
#define IMM_SOUND (T)
#define IMM_SLEEP (U)
#define IMM_WOOD (X)
#define IMM_SILVER (Y)
#define IMM_IRON (Z)
#define IMM_ILLUSION (aa)
#define IMM_SCRY (bb)
#define IMM_HUNGER (cc) // Ixliam
#define IMM_THIRST (dd) // Ixliam
#define IMM_FEAR (ee) // Ixliam
// RES bits for mobs
#define RES_SUMMON (A)
#define RES_CHARM (B)
#define RES_MAGIC (C)
#define RES_WEAPON (D)
#define RES_BASH (E)
#define RES_PIERCE (F)
#define RES_SLASH (G)
#define RES_FIRE (H)
#define RES_COLD (I)
#define RES_LIGHTNING (J)
#define RES_ACID (K)
#define RES_POISON (L)
#define RES_NEGATIVE (M)
#define RES_HOLY (N)
#define RES_ENERGY (O)
#define RES_MENTAL (P)
#define RES_DISEASE (Q)
#define RES_DROWNING (R)
#define RES_LIGHT (S)
#define RES_SOUND (T)
#define RES_WOOD (X)
#define RES_SILVER (Y)
#define RES_IRON (Z)
#define RES_ILLUSION (aa)
#define RES_SCRY (bb)
// VULN bits for mobs
#define VULN_SUMMON (A)
#define VULN_CHARM (B)
#define VULN_MAGIC (C)
#define VULN_WEAPON (D)
#define VULN_BASH (E)
#define VULN_PIERCE (F)
#define VULN_SLASH (G)
#define VULN_FIRE (H)
#define VULN_COLD (I)
#define VULN_LIGHTNING (J)
#define VULN_ACID (K)
#define VULN_POISON (L)
#define VULN_NEGATIVE (M)
#define VULN_HOLY (N)
#define VULN_ENERGY (O)
#define VULN_MENTAL (P)
#define VULN_DISEASE (Q)
#define VULN_DROWNING (R)
#define VULN_LIGHT (S)
#define VULN_SOUND (T)
#define VULN_WOOD (X)
#define VULN_SILVER (Y)
#define VULN_IRON (Z)
#define VULN_ILLUSION (aa)
#define VULN_SCRY (bb)
// body form
#define FORM_EDIBLE (A)
#define FORM_POISON (B)
#define FORM_MAGICAL (C)
#define FORM_INSTANT_DECAY (D)
#define FORM_OTHER (E) // defined by material bit
// actual form
#define FORM_ANIMAL (G)
#define FORM_SENTIENT (H)
#define FORM_UNDEAD (I)
#define FORM_CONSTRUCT (J)
#define FORM_MIST (K)
#define FORM_INTANGIBLE (L)
#define FORM_BIPED (M)
#define FORM_CENTAUR (N)
#define FORM_INSECT (O)
#define FORM_SPIDER (P)
#define FORM_CRUSTACEAN (Q)
#define FORM_WORM (R)
#define FORM_BLOB (S)
#define FORM_MOUNTABLE (T)
#define FORM_MAMMAL (V)
#define FORM_BIRD (W)
#define FORM_REPTILE (X)
#define FORM_SNAKE (Y)
#define FORM_DRAGON (Z)
#define FORM_AMPHIBIAN (aa)
#define FORM_FISH (bb)
#define FORM_COLD_BLOOD (cc)
// body parts
#define PART_HEAD (A)
#define PART_ARMS (B)
#define PART_LEGS (C)
#define PART_HEART (D)
#define PART_BRAINS (E)
#define PART_GUTS (F)
#define PART_HANDS (G)
#define PART_FEET (H)
#define PART_FINGERS (I)
#define PART_EAR (J)
#define PART_EYE (K)
#define PART_LONG_TONGUE (L)
#define PART_EYESTALKS (M)
#define PART_TENTACLES (N)
#define PART_FINS (O)
#define PART_WINGS (P)
#define PART_TAIL (Q)
// for combat
#define PART_CLAWS (U)
#define PART_FANGS (V)
#define PART_HORNS (W)
#define PART_SCALES (X)
#define PART_TUSKS (Y)
// Bits for 'affected_by' - Used in #MOBILES.
#define AFF_BLIND (A)
#define AFF_INVISIBLE (B)
#define AFF_DETECT_EVIL (C)
#define AFF_DETECT_INVIS (D)
#define AFF_DETECT_MAGIC (E)
#define AFF_DETECT_HIDDEN (F)
#define AFF_DETECT_GOOD (G)
#define AFF_SANCTUARY (H)
#define AFF_FAERIE_FIRE (I)
#define AFF_INFRARED (J)
#define AFF_CURSE (K)
#define AFF_OTTERLUNGS (L)
#define AFF_POISON (M)
#define AFF_PROTECT_EVIL (N)
#define AFF_PROTECT_GOOD (O)
#define AFF_SNEAK (P)
#define AFF_HIDE (Q)
#define AFF_SLEEP (R)
#define AFF_CHARM (S)
#define AFF_FLYING (T)
#define AFF_PASS_DOOR (U)
#define AFF_HASTE (V)
#define AFF_CALM (W)
#define AFF_PLAGUE (X)
#define AFF_WEAKEN (Y)
#define AFF_DARK_VISION (Z)
#define AFF_BERSERK (aa)
#define AFF_SWIM (bb)
#define AFF_REGENERATION (cc)
#define AFF_SLOW (dd)
#define AFF_FEAR (ee)
// Bits for 'affected_by2' - Used in #MOBILES.
#define AFF2_POSSESSION (A)
#define AFF2_RAMPAGE (B)
#define AFF2_VAMP_BITE (C)
#define AFF2_GHOUL (D)
#define AFF2_CHI_POWER (E)
#define AFF2_FADE (F)
#define AFF2_TAUNT (G)
#define AFF2_CRIPPLE (H)
#define AFF2_CAMOUFLAGE (I)
#define AFF2_DETECT_CAMOUFLAGE (J)
#define AFF2_ROAR (K)
#define AFF2_WARCRY (L)
#define AFF2_SHIELD (M)
#define AFF2_MUTE (N)
#define AFF2_DET_TRAPS (O)
#define AFF2_TREEFORM (P)
#define AFF2_PASSWOTRACE (Q)
#define AFF2_VANISH (R)
#define AFF2_FEAR_MAGIC (S)
#define AFF2_DETECT_TREEFORM (T)
#define AFF2_DETECT_VANISH (U)
#define AFF2_FIRE_SHIELD (V) // not yet implemented
#define AFF2_ICE_SHIELD (W) // not yet implemented 32
#define AFF2_SHOCK_SHIELD (X) // not yet implemented 33
#define AFF2_HALLUCINATE (Y) // not yet implemented 34
#define AFF2_VICEGRIP (Z)
#define AFF2_STOCKADE (aa) // Ixliam
#define AFF2_STONE_GARGOYLE (bb) // Ixliam
/*
* Class Definitions
*/
#define CLASS_MAGE 0
#define CLASS_CLERIC 1
#define CLASS_THIEF 2
#define CLASS_WARRIOR 3
#define CLASS_DRUID 4
#define CLASS_PALADIN 5
#define CLASS_RANGER 6
#define CLASS_BARBARIAN 7
#define CLASS_SPELLFILCHER 8
// Class Flags
#define CLASSFLAG_POISON_IMMUNITY (A) // Paladins get this
#define CLASSFLAG_CURSE_IMMUNITY (B) // Paladins get this
#define CLASSFLAG_PLAGUE_IMMUNITY (C) // Paladins get this
#define CLASSFLAG_DAMMODS_WITH_HOLYWEAPONS (D) // Paladins get this
#define CLASSFLAG_SAFE_FLEE_FROM_COMBAT (E) // Thieves get this
#define CLASSFLAG_CASTING_AFFECTED_BY_MOON (F) // Mages get this
#define CLASSFLAG_CASTING_HALFAFFECTED_BY_MOON (G) // Spellfilchers get this
#define CLASSFLAG_MAGIC_ANTIPATHY (H) // Barbs get this
#define CLASSFLAG_LEVEL_BASED_AC (I) // Barbs get this
#define CLASSFLAG_TOTEMS (J) // Druids get this
#define CLASSFLAG_CAN_COLLECT_WATER (K) // Druids get this
#define CLASSFLAG_DEITIES (L) // Clerics and Paladins get this
#define CLASSFLAG_HOLYSYMBOLS (M) // Clerics get this
#define CLASSFLAG_NO_CUSTOMIZATION (N) // The class can't customise
#define CLASSFLAG_ALWAYS_HIDDEN_FROM_MORTAL_CLASSINFO (O) // only effects morts
#define CLASSFLAG_HIDDEN_FROM_MORTAL_CLASSINFO_WHEN_ABOVE_THEIR_REMORT (P) // only effects morts
/*
* Class Restrictions
*/
#define RESTRICT_MAGE A
#define RESTRICT_CLERIC B
#define RESTRICT_THIEF C
#define RESTRICT_WARRIOR D
#define RESTRICT_DRUID E
#define RESTRICT_PALADIN F
#define RESTRICT_RANGER G
#define RESTRICT_BARBARIAN H
#define RESTRICT_SPELLFILCHER I
// Sex - Used in #MOBILES.
#define SEX_NEUTRAL 0
#define SEX_MALE 1
#define SEX_FEMALE 2
#define SEX_RANDOM 3
// AC types
#define AC_PIERCE 0
#define AC_BASH 1
#define AC_SLASH 2
#define AC_EXOTIC 3
// dice
#define DICE_NUMBER 0
#define DICE_TYPE 1
#define DICE_BONUS 2
// size
#define SIZE_TINY 0
#define SIZE_SMALL 1
#define SIZE_MEDIUM 2
#define SIZE_LARGE 3
#define SIZE_HUGE 4
#define SIZE_GIANT 5
// Item types - Used in #OBJECTS
#define ITEM_LIGHT 1
#define ITEM_SCROLL 2
#define ITEM_WAND 3
#define ITEM_STAFF 4
#define ITEM_WEAPON 5
#define ITEM_COMPONENT 6
#define ITEM_RP 7
#define ITEM_TREASURE 8
#define ITEM_ARMOR 9
#define ITEM_POTION 10
#define ITEM_CLOTHING 11
#define ITEM_FURNITURE 12
#define ITEM_TRASH 13
#define ITEM_PARCHMENT 14
#define ITEM_CONTAINER 15
#define ITEM_INSTRUMENT 16
#define ITEM_DRINK_CON 17
#define ITEM_KEY 18
#define ITEM_FOOD 19
#define ITEM_MONEY 20
#define ITEM_HERB 21
#define ITEM_BOAT 22
#define ITEM_CORPSE_NPC 23
#define ITEM_CORPSE_PC 24
#define ITEM_FOUNTAIN 25
#define ITEM_PILL 26
#define ITEM_PROTECT 27
#define ITEM_MAP 28
#define ITEM_PORTAL 29
#define ITEM_WARP_STONE 30
#define ITEM_ROOM_KEY 31
#define ITEM_GEM 32
#define ITEM_JEWELRY 33
#define ITEM_JUKEBOX 34
#define ITEM_TOKEN 35
#define ITEM_POULTICE 36
#define ITEM_MORTAR 37
#define ITEM_CAULDRON 38
#define ITEM_FLASK 39
#define ITEM_ORE 40
// Extra flags - Used in #OBJECTS
#define OBJEXTRA_GLOW (A)
#define OBJEXTRA_HUM (B)
#define OBJEXTRA_DARK (C)
#define OBJEXTRA_LOCK (D)
#define OBJEXTRA_EVIL (E)
#define OBJEXTRA_INVIS (F)
#define OBJEXTRA_MAGIC (G)
#define OBJEXTRA_NODROP (H)
#define OBJEXTRA_BLESS (I)
#define OBJEXTRA_ANTI_GOOD (J)
#define OBJEXTRA_ANTI_EVIL (K)
#define OBJEXTRA_ANTI_NEUTRAL (L)
#define OBJEXTRA_NOREMOVE (M)
#define OBJEXTRA_INVENTORY (N)
#define OBJEXTRA_NOPURGE (O)
#define OBJEXTRA_ROT_DEATH (P)
#define OBJEXTRA_VIS_DEATH (Q)
#define OBJEXTRA_OTTERLUNGS (R)
#define OBJEXTRA_NONMETAL (S)
#define OBJEXTRA_NOLOCATE (T)
#define OBJEXTRA_MELT_DROP (U)
#define OBJEXTRA_HAD_TIMER (V)
#define OBJEXTRA_SELL_EXTRACT (W)
#define OBJEXTRA_NO_DEGRADE (X)
#define OBJEXTRA_BURN_PROOF (Y)
#define OBJEXTRA_NOUNCURSE (Z)
#define OBJEXTRA_CHAOS (aa)
#define OBJEXTRA_HORNED (bb)
#define OBJEXTRA_NO_RESTRING (cc)
#define OBJEXTRA_LODGED (dd)
#define OBJEXTRA_NO_GET_ALL (ee)
// Extra flags 2 - Used in #OBJECTS
#define OBJEXTRA2_BURIED (A)
#define OBJEXTRA2_NODECAY (B)
#define OBJEXTRA2_NOPRIMARY (C)
#define OBJEXTRA2_NOSECONDARY (D)
#define OBJEXTRA2_NOCHAOS (E)
#define OBJEXTRA2_QUEST (F)
#define OBJEXTRA2_HOLY (G)
#define OBJEXTRA2_REMORT (H)
#define OBJEXTRA2_VAMPIRE_BANE (I)
#define OBJEXTRA2_TRAP (J)
#define OBJEXTRA2_NOSELL (L)
#define OBJEXTRA2_NOQUEST (M)
#define OBJEXTRA2_ANTI_LAW (N)
#define OBJEXTRA2_ANTI_CHAOS (O)
#define OBJEXTRA2_ANTI_BALANCE (P)
// Wear flags - Used in #OBJECTS
#define OBJWEAR_TAKE (A)
#define OBJWEAR_FINGER (B)
#define OBJWEAR_NECK (C)
#define OBJWEAR_TORSO (D)
#define OBJWEAR_HEAD (E)
#define OBJWEAR_LEGS (F)
#define OBJWEAR_FEET (G)
#define OBJWEAR_HANDS (H)
#define OBJWEAR_ARMS (I)
#define OBJWEAR_SHIELD (J)
#define OBJWEAR_ABOUT (K)
#define OBJWEAR_WAIST (L)
#define OBJWEAR_WRIST (M)
#define OBJWEAR_WIELD (N)
#define OBJWEAR_HOLD (O)
#define OBJWEAR_NO_SAC (P)
#define OBJWEAR_FLOAT (Q)
#define OBJWEAR_LODGED_ARM (R)
#define OBJWEAR_LODGED_LEG (S)
#define OBJWEAR_LODGED_RIB (T)
#define OBJWEAR_SHEATHED (U)
#define OBJWEAR_CONCEALED (V)
#define OBJWEAR_EYES (W)
#define OBJWEAR_EAR (X)
#define OBJWEAR_FACE (Y)
#define OBJWEAR_ANKLE (Z)
#define OBJWEAR_BACK (aa)
// weapon class
#define WEAPON_EXOTIC 0
#define WEAPON_SWORD 1
#define WEAPON_DAGGER 2
#define WEAPON_STAFF 3
#define WEAPON_MACE 4
#define WEAPON_AXE 5
#define WEAPON_FLAIL 6
#define WEAPON_WHIP 7
#define WEAPON_POLEARM 8
#define WEAPON_SICKLE 9
#define WEAPON_SPEAR 10
// specialization types
#define SPECIALIZE_NONE 0
#define SPECIALIZE_SWORD 1
#define SPECIALIZE_DAGGER 2
#define SPECIALIZE_STAFF 3
#define SPECIALIZE_MACE 4
#define SPECIALIZE_AXE 5
#define SPECIALIZE_FLAIL 6
#define SPECIALIZE_WHIP 7
#define SPECIALIZE_POLARM 8
#define SPECIALIZE_SPEAR 9
// weapon types
#define WEAPON_FLAMING (A)
#define WEAPON_FROST (B)
#define WEAPON_VAMPIRIC (C)
#define WEAPON_SHARP (D)
#define WEAPON_VORPAL (E)
#define WEAPON_TWO_HANDS (F)
#define WEAPON_SHOCKING (G)
#define WEAPON_POISON (H)
#define WEAPON_HOLY (I)
#define WEAPON_LIVING (J)
#define WEAPON_SLAYER (K)
#define WEAPON_SUCKLE (L)
#define WEAPON_ENERVATE (M)
#define WEAPON_ANNEALED (N)
// gate flags
#define GATE_NORMAL_EXIT (A)
#define GATE_NOCURSE (B)
#define GATE_GOWITH (C)
#define GATE_BUGGY (D)
#define GATE_RANDOM (E)
#define GATE_OPAQUE (F)
#define GATE_SHORT_LOOKINTO (G)
// token flags
#define TOKEN_DROPDEATH (A)
#define TOKEN_QUITDEATH (B)
// furniture flags
#define STAND_AT (A)
#define STAND_ON (B)
#define STAND_IN (C)
#define SIT_AT (D)
#define SIT_ON (E)
#define SIT_IN (F)
#define REST_AT (G)
#define REST_ON (H)
#define REST_IN (I)
#define SLEEP_AT (J)
#define SLEEP_ON (K)
#define SLEEP_IN (L)
#define PUT_AT (M)
#define PUT_ON (N)
#define PUT_IN (O)
#define PUT_INSIDE (P)
#define KNEEL_AT (Q)
#define KNEEL_ON (R)
#define KNEEL_IN (S)
#define STAND_UNDER (T)
#define SIT_UNDER (U)
#define REST_UNDER (V)
#define SLEEP_UNDER (W)
#define PUT_UNDER (X)
#define KNEEL_UNDER (Y)
// Apply types (for affects) - Used in #OBJECTS
// moved into enum stored in structs.h
// Values for containers (value[1]) - Used in #OBJECTS
#define CONT_CLOSEABLE (A)
#define CONT_PICKPROOF (B)
#define CONT_CLOSED (C)
#define CONT_LOCKED (D)
#define CONT_PUT_ON (E)
#define CONT_LOCKER (F)
// Room affected_by flags
#define ROOMAFF_UTTERDARK (A)
#define ROOMAFF_ALARM (B)
#define ROOMAFF_CONE_OF_SILENCE (C)
#define ROOMAFF_UNDERWATER (D)
#define ROOMAFF_LEONIDS (E)
// Room flags - Used in #ROOMS
#define ROOM_DARK (A)
#define ROOM_NO_SUMMON (B) // doesn't do anything yet
#define ROOM_NO_MOB (C)
#define ROOM_INDOORS (D)
#define ROOM_NO_PORTAL (E) // doesn't do anything yet
#define ROOM_ARENA (F) // doesn't do anything yet
#define ROOM_BANK (G)
#define ROOM_NOCHANNELS (H) // mortals can't use channels while in the room
#define ROOM_PRIVATE (J)
#define ROOM_SAFE (K)
#define ROOM_SOLITARY (L)
#define ROOM_PET_SHOP (M)
#define ROOM_NO_RECALL (N)
#define ROOM_IMP_ONLY (O)
#define ROOM_GODS_ONLY (P)
#define ROOM_HEROES_ONLY (Q)
#define ROOM_NEWBIES_ONLY (R)
#define ROOM_LAW (S)
#define ROOM_NOWHERE (T)
#define ROOM_OOC (U)
#define ROOM_NOSCRY (W)
#define ROOM_ANTIMAGIC (X)
#define ROOM_NOSPEAK (Y)
#define ROOM_LIGHT (Z)
#define ROOM_NOFLY (aa)
#define ROOM_NOSCAN (bb)
#define ROOM_NOAUTOMAP (cc)
#define ROOM_NOAUTOEXITS (dd)
#define ROOM_INN (ee)
#define ROOM2_NO_AREA_ECHOES (A) // room doesn't see area echoes
#define ROOM2_MINE (B) // room can be mined for ores
// Exit flags - Used in #ROOMS
#define EX_ISDOOR (A)
#define EX_CLOSED (B)
#define EX_LOCKED (C)
#define EX_PICKPROOF (F)
#define EX_NOPASS (G)
#define EX_EASY (H)
#define EX_HARD (I)
#define EX_INFURIATING (J)
#define EX_NOCLOSE (K)
#define EX_NOLOCK (L)
#define EX_ONEWAY (M)
#define EX_OBVIOUS (N)
// Sector types - Used in #ROOMS
#define SECT_INSIDE 0
#define SECT_CITY 1
#define SECT_FIELD 2
#define SECT_FOREST 3
#define SECT_HILLS 4
#define SECT_MOUNTAIN 5
#define SECT_WATER_SWIM 6
#define SECT_WATER_NOSWIM 7
#define SECT_SWAMP 8
#define SECT_AIR 9
#define SECT_DESERT 10
#define SECT_CAVE 11
#define SECT_UNDERWATER 12
#define SECT_SNOW 13
#define SECT_ICE 14
#define SECT_TRAIL 15
#define SECT_LAVA 16
#define SECT_MAX 17
// Sector bits, for use with dampen, restrict, enhance
#define SECTBIT_INSIDE (A)
#define SECTBIT_CITY (B)
#define SECTBIT_FIELD (C)
#define SECTBIT_FOREST (D)
#define SECTBIT_HILLS (E)
#define SECTBIT_MOUNTAIN (F)
#define SECTBIT_WATER_SWIM (G)
#define SECTBIT_WATER_NOSWIM (H)
#define SECTBIT_SWAMP (I)
#define SECTBIT_AIR (J)
#define SECTBIT_DESERT (K)
#define SECTBIT_CAVE (L)
#define SECTBIT_UNDERWATER (M)
#define SECTBIT_SNOW (N)
#define SECTBIT_ICE (O)
#define SECTBIT_TRAIL (P)
#define SECTBIT_LAVA (Q)
// Equipment wear locations - Used in #RESETS
#define WEAR_NONE -1
#define WEAR_LIGHT 0
#define WEAR_FINGER_L 1
#define WEAR_FINGER_R 2
#define WEAR_NECK_1 3
#define WEAR_NECK_2 4
#define WEAR_TORSO 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_L 14
#define WEAR_WRIST_R 15
#define WEAR_WIELD 16
#define WEAR_HOLD 17
#define WEAR_FLOAT 18
#define WEAR_SECONDARY 19
#define WEAR_LODGED_ARM 20
#define WEAR_LODGED_LEG 21
#define WEAR_LODGED_RIB 22
#define WEAR_SHEATHED 23
#define WEAR_CONCEALED 24
#define WEAR_EYES 25
#define WEAR_EAR_L 26
#define WEAR_EAR_R 27
#define WEAR_FACE 28
#define WEAR_ANKLE_L 29
#define WEAR_ANKLE_R 30
#define WEAR_BACK 31
#define MAX_WEAR 32
enum timefields
{
TIME_NONE,
TIME_SMALL_HOURS,
TIME_DAWN,
TIME_MORNING,
TIME_NOON,
TIME_AFTERNOON,
TIME_DUSK,
TIME_EVENING,
TIME_MIDNIGHT,
TIME_MAX,
};
enum modifiers
{
DIFF_NONE,
DIFF_TRIVIAL,
DIFF_EASY,
DIFF_LIGHT,
DIFF_MEDIUM,
DIFF_HARD,
DIFF_VERY_HARD,
DIFF_ABSURD,
DIFF_SHEER_FOLLY,
DIFF_MAX,
};
enum totems
{
TOTEM_BEAR,
TOTEM_STAG,
TOTEM_SWALLOW,
TOTEM_OSPREY,
TOTEM_TORTOISE,
TOTEM_RAVEN,
TOTEM_BAT,
TOTEM_WOLF,
TOTEM_SERPENT,
TOTEM_TOAD,
TOTEM_OWL,
TOTEM_HARE,
TOTEM_MAX,
};
enum mixtypes
{
MIXTYPE_NONE,
MIXTYPE_HERBALISM,
MIXTYPE_COOKING,
MIXTYPE_SMITHING,
MIXTYPE_ALCHEMY,
MIXTYPE_POTTERY,
MIXTYPE_TINKERING,
MIXTYPE_MAX,
};
// OLC Race flags
#define RACE_NONE 0
#define RACE_CHANGED (A)
#define RACE_ADDED (B)
// OLCArea flags.
#define OLCAREA_NONE 0
#define OLCAREA_CHANGED (A) // Area has been modified.
#define OLCAREA_ADDED (B) // Area has been added to.
#define OLCAREA_LOADING (C) // Used for counting in db.c
#define OLCAREA_IGNORE_UNDEFINED_FLAGS (D) // ignores undefined bits when resaving an area.
// set on an area that is read in from anything
// other than NAFF
#define OLCAREA_INVITELISTCHANGED (E)
// Area flags.
#define AREA_NONE 0
#define AREA_OLCONLY (A) // Area can't be accessed by nonbuilders
#define AREA_NOTELEPORT (B) // Area can't be teleported into
#define AREA_NOSCRY (C) // Area can't be SCRYED into
#define AREA_HIDDEN (D) // Area unseen on wholist by morts
#define AREA_USE_BUILDRESTRICTS (E)
#define AREA_LOCKED (F)
#define AREA_NOGATEINTO (G) // Area can't be gated into
#define AREA_NOSUMMONINTO (H) // Things can't be summoned into the area
#define AREA_NOPORTALINTO (I) // portals can't be cast into the area
#define AREA_NEWBIE_AREA_RESETS (J) // resets the area more often - for newbie areas
#define BUILDRESTRICT_ALL (0)
#define BUILDRESTRICT_AREA (1)
#define BUILDRESTRICT_EXITS (2)
#define BUILDRESTRICT_MOBPROGS (3)
#define BUILDRESTRICT_MOBS (4)
#define BUILDRESTRICT_OBJECTS (5)
#define BUILDRESTRICT_RESETS (6)
#define BUILDRESTRICT_ROOMS (7)
#define BUILDRESTRICT_OTHER (8)
// HELP flags.
#define HELPFILE_NONE 0
#define HELPFILE_CHANGED (A) // Area has been modified.
// SEDIT flags
#define SEDIT_NONE 0
#define SEDIT_CHANGED (A)
#define SEDIT_ADDED (B)
// COMEDIT flags
#define COMEDIT_NONE 0
#define COMEDIT_CHANGED (A)
// QEDIT FLAGS
#define QEDIT_NONE 0
#define QEDIT_CHANGED (A)
// MIX FLAGS
#define MIX_NONE 0
#define MIX_CHANGED (A)
// DEDIT FLAGS
#define DEDIT_NONE 0
#define DEDIT_CHANGED (A) // Autosave notification
/*
#define DEDIT_GOOD_ALIGN (B)
#define DEDIT_NEUTRAL_ALIGN (C)
#define DEDIT_EVIL_ALIGN (D)
#define DEDIT_ORDER_TENDENCY (E)
#define DEDIT_NEUTRAL_TENDENCY (F)
#define DEDIT_CHAOTIC_TENDENCY (G)
#define DEDIT_MALE_GENDER (H)
#define DEDIT_FEMALE_GENDER (I)
#define DEDIT_NEUTRAL_GENDER (J)
*/
// GENERIC ALIGN FLAGS
#define ALIGN_NONE 0
#define ALIGN_EVIL (A)
#define ALIGN_NEUTRAL (B)
#define ALIGN_GOOD (C)
// GENERIC TENDENCY FLAGS
#define TENDFLAG_NONE 0
#define TENDFLAG_CHAOTIC (A)
#define TENDFLAG_NEUTRAL (B)
#define TENDFLAG_LAWFUL (C)
// CLASSEDIT flags
#define CLASSEDIT_NONE 0
#define CLASSEDIT_CHANGED (A)
// LOG stuff moved here to make it a bit more accesible
#define LOG_ALWAYS 0 // always logged into the system log
#define LOG_PALWAYS 1 // always log players only into the system log
#define LOG_OLC 3 // ALWAYS Logged into OLC log files
#define LOG_NORMAL 5 // Logged into log files (when LOG ALL is on
// or a player log is on... if plog on, also
// logged into their own player log.
#define LOG_PLOGONLY 7 // only logged into players log file when
// player is being logged, not logged into
// main system.
#define LOG_DONT_LOG 8 // not logged but can be snooped - eg directions
#define LOG_NEVER 10 // Never logged - only thing not snoopable
#define CMD_OOC (A)
#define CMD_IC (B)
#define CMD_NO_ORDER (C)
#define CMD_NO_WIZNET_SECURE (D)
#define CMD_NO_TREEFORM (E)
#define CMD_NO_STONE_GARGOYLE (F)
#define CMD_NO_STOCKADE (G)
enum mob_balance
{
MOB_BALANCE_NUM_HIT_DIE,
MOB_BALANCE_HIT_DIE_TYPE,
MOB_BALANCE_HIT_BONUS,
MOB_BALANCE_AC,
MOB_BALANCE_NUM_DAM_DIE,
MOB_BALANCE_DAM_DIE_TYPE,
MOB_BALANCE_DAM_BONUS,
MOB_BALANCE_MAX,
};
enum categories
{
CAT_UNDEFINED,
CAT_DEFENSIVE_SPELL,
CAT_DEFENSIVE_ENHANCEMENT,
CAT_OFFENSIVE_ENHANCEMENT,
CAT_OFFENSIVE_SPELL,
CAT_AREASPELL,
CAT_ENCHANTMENT_SPELL,
CAT_HEALING_SPELL,
CAT_MOVEMENT_SPELL,
CAT_CREATION_SPELL,
CAT_INFORMATION_SPELL,
CAT_MISCELLANEOUS_SPELL,
CAT_REALM,
CAT_SPHERE,
CAT_SEASON,
CAT_LANGUAGE,
CAT_WEAPON,
CAT_OFFENSIVE_COMBAT,
CAT_DEFENSIVE_COMBAT,
CAT_HEALING_SKILL,
CAT_MOVEMENT_SKILL,
CAT_MAGIC,
CAT_MISCELLANEOUS_SKILL,
CAT_DEFAULT_SKILL,
};
enum com_categories
{
COMCAT_UNDEFINED,
COMCAT_AUTO,
COMCAT_CLAN,
COMCAT_COMBAT,
COMCAT_COMMUNICATION,
COMCAT_MAGIC,
COMCAT_MISC,
COMCAT_MOVEMENT,
COMCAT_NOTES,
COMCAT_OBJECT,
COMCAT_PKRELATED,
COMCAT_RP,
COMCAT_STATISTICS,
COMCAT_UTILITIES,
COMCAT_OLC,
COMCAT_NOBLE,
COMCAT_NSUPPORT,
COMCAT_RPSUPPORT,
COMCAT_HELPS
};
#define GRANTGROUP_MORTAL (B)
#define GRANTGROUP_NOBLE (C)
#define GRANTGROUP_BUILDER (D)
#define GRANTGROUP_IMPLEMENTOR (E)
#define GRANTGROUP_HIGHADMIN (F)
#define GRANTGROUP_ADMIN (G)
#define GRANTGROUP_HEADBALANCE (H)
#define GRANTGROUP_HEADCODE (I)
#define GRANTGROUP_HEADLAW (J)
#define GRANTGROUP_HEADMYTHOS (K)
#define GRANTGROUP_HEADREALM (L)
#define GRANTGROUP_HEADSUPPORT (M)
#define GRANTGROUP_HEADROLEPLAY (N)
#define GRANTGROUP_BALANCE (O)
#define GRANTGROUP_CODE (P)
#define GRANTGROUP_LAW (Q)
#define GRANTGROUP_MYTHOS (R)
#define GRANTGROUP_REALM (S)
#define GRANTGROUP_SUPPORT (T)
#define GRANTGROUP_ROLEPLAY (U)
#define GRANTGROUP_ADVANCEDBUILDER (V)
#define GRANTGROUP_DEVELOPMENT (W)
#define GRANTGROUP_EXPERIMENTAL (X)
#define GRANTGROUP_BETATEST1 (Y)
#define GRANTGROUP_BETATEST2 (Z)
#define GRANTGROUP_INCOMPLETE (aa)
#define GRANTGROUP_IMMORTAL (bb)
#define GRANTGROUP_OBSCUREIMMORTAL (cc) // the more obscure commands
// Global Constants
extern char *const dir_shortname[];
extern char *const dir_name[];
extern const sh_int rev_dir[];
extern const struct spec_type spec_table[];
extern const struct ospec_type ospec_table[];
extern int max_on;
extern int true_count;
extern char EXE_FILE[30];
extern char MACHINE_NAME[MSL];
extern char last_command[MSL];
extern char last_input[MSL];
// Global variables
extern int top_affect;
extern int top_area;
extern int top_deity;
extern int top_ed;
extern int top_exit;
extern int top_help;
extern int social_count;
extern int top_mob_index;
extern int top_obj_index;
extern int top_reset;
extern int top_room;
extern int top_shop;
extern int top_inn;
extern int top_vnum_mob;
extern int top_vnum_obj;
extern int top_vnum_room;
extern char str_empty [1];
extern long tick_counter;
extern int note_notify_counter;
extern long last_vnum;
// 'last_vnum' used for debuging ie print last_vnum in gdb
extern MOB_INDEX_DATA *mob_index_hash [MAX_KEY_HASH];
extern OBJ_INDEX_DATA *obj_index_hash [MAX_KEY_HASH];
extern ROOM_INDEX_DATA *room_index_hash [MAX_KEY_HASH];
extern MOOT_DATA *moot;
// Conditions.
#define COND_DRUNK 0
#define COND_FULL 1
#define COND_THIRST 2
#define COND_HUNGER 3
// old positions
#define POS_OLD_DEAD 0
#define POS_OLD_MORTAL 1
#define POS_OLD_INCAP 2
#define POS_OLD_STUNNED 3
#define POS_OLD_SLEEPING 4
#define POS_OLD_RESTING 5
#define POS_OLD_SITTING 6
#define POS_OLD_FIGHTING 7
#define POS_OLD_STANDING 8
/* determines if they are
* comatose (will die),
* unconscious,
* semiconscious,
* subdued,
* yielding,
* free
*/
// Positions
#define POS_DEAD 0
#define POS_MORTAL 1
#define POS_INCAP 2
#define POS_STUNNED 3
#define POS_SLEEPING 4
//#define POS_SUBDUED 5
#define POS_RESTING 5
#define POS_SITTING 6
#define POS_KNEELING 7
#define POS_FIGHTING 8
#define POS_STANDING 9
// ACT bits for players.
#define PLR_IS_NPC (A) // Don't EVER set.
#define PLR_CAN_ADVANCE (B)
#define PLR_AUTOASSIST (C)
#define PLR_AUTOEXIT (D)
#define PLR_AUTOLOOT (E)
#define PLR_AUTOREFORMAT (F) // Automatically reformat notes on post
#define PLR_AUTOGOLD (G)
#define PLR_AUTOSPLIT (H)
#define PLR_NOTEACH (J)
#define PLR_AUTOSUBDUE (K) // player is going to subdue
#define PLR_QUESTER (L)
#define PLR_HOLYLIGHT (N)
#define PLR_HOLYNAME (O)
#define PLR_NOSUMMON (Q)
#define PLR_NOFOLLOW (R)
#define PLR_SPECIFY_SELF (S)
#define PLR_HOLYVNUM (T)
#define PLR_PERMIT (U)
#define PLR_LOG (W)
#define PLR_DENY (X)
#define PLR_FREEZE (Y)
#define PLR_NORP (Z)
#define PLR_NOREDUCING_MAXKARN (aa) //
#define PLR_CAN_HERO (bb)
#define PLR_AUTOPEEK (cc) // Kal jun 98
#define PLR_HOLYWALK (dd) // Kal jun 98
#define PLR_AUTOMAP (ee) // Kal Sept 98
// dynamic data - not saved
#define DYN_CURRENT_SUBDUE (A) // player is currently subduing in
// current fight
#define DYN_MAPFIRST (C)
#define DYN_MAPCLEAR (D)
#define DYN_WIZARDEYEING (E) // used for wizard eye
#define DYN_DOING_DAMAGE (F) // used to determine who starts a fight
#define DYN_SILENTLY (G)
#define DYN_USING_ATLEVEL (H)
#define DYN_IS_BEING_ORDERED (J)
#define DYN_IS_CUTTING_OFF (K)
#define DYN_SUCCESS_CAST (L)
#define DYN_RUNNING_MOBPROG_CMD (M) // used to determine who starts a fight
// with a mobprog response
#define DYN_USING_AT (N)
#define DYN_NO_SUBLEVEL_SPELL_LEARN (O)
#define DYN_IMMLASTON (P)
#define DYN_NONMAGICAL_FLYING (Q) // used to stop those with magical fly
// losing mv for flying
#define DYN_TEMP_FLAG (R) // can be used for any purpose, by any function
// iwhere uses it currently
#define DYN_MOB_SEE_ALL (S) // Used to make all can_see triggers true
// after a 'mob seeall' call, call it once at the top
// of a function, bit turned on as program_flow returns
#define DYN_UNKNOWN_REPLY_NAME (T)
#define DYN_HAS_ANONYMOUS_RETELL (V)
#define DYN_IN_ROOM_ONLY (W)
#define DYN_STARTED_FIGHT (X)
#define DYN_AUTOPKASSIST (Y)
#define DYN_SHOWFLAGS (Z)
#define DYN_USING_OLCAFTER (aa) // showafter and showflagsafter
#define DYN_USING_KTELL (bb)
#define DYN_NO_PROMPT_SWITCHED_PREFIX (cc)
#define DYN_MPBUG_USE_QUEUED_DETAILS (dd)
// dynamic OBJECT data - not saved either :) DYN bits rock!!!!
#define DYNOBJ_BURIED (A)
// comm flags -- may be used on both mobs and chars
#define COMM_CODING (B)
#define COMM_GLOBAL_SOCIAL_OFF (C)
#define COMM_NOGPROMPT (F)
#define COMM_WHOVIS (G)
#define COMM_NEWBIE_SUPPORT (H)
#define COMM_NOQUOTE (I)
#define COMM_SHOUTSOFF (J)
// display flags
#define COMM_SPELL_DEBUG (K)
#define COMM_COMPACT (L)
#define COMM_BRIEF (M)
#define COMM_PROMPT (N)
#define COMM_COMBINE (O)
#define COMM_TELNET_GA (P)
#define COMM_SHOW_AFFECTS (Q)
#define COMM_AUTOSELF (R)
#define COMM_ANNOUNCEOFF (S)
// penalties
#define COMM_NOEMOTE (T)
#define COMM_NOSHOUT (U)
#define COMM_NOTELL (V)
#define COMM_NOCHANNELS (W)
#define COMM_BUILDING (X) // in OLC mode
#define COMM_SNOOP_PROOF (Y)
#define COMM_AFK (Z)
#define COMM_CANNOCHANNEL (aa) // CAN NO CHANNEL OTHER PLAYERS
//#define unused (bb)
#define COMM_REDUCED_LASTON (cc) // dont get much info about imms from laston
#define COMM_NOPRAY (dd)
// Config flags
#define CONFIG_SHOWMISC (A)
#define CONFIG_NOMISC (B)
#define CONFIG_OBJRESTRICT (C)
#define CONFIG_AUTORECALL (E)
#define CONFIG_NOTE_ONLY_TO_IMM (F)
#define CONFIG_AUTOEXAMINE (G)
#define CONFIG_AUTOLANDONREST (H)
#define CONFIG_COURTMEMBER (I)
#define CONFIG_BARD_COUNCIL (J)
#define CONFIG_HOLYSPEECH (M)
#define CONFIG_DISALLOWED_PKILL (N)
#define CONFIG_IGNORE_MULTILOGINS (O)
#define CONFIG_RP_SUPPORT (Q)
#define CONFIG_METRIC (R)
#define CONFIG_ACTIVE (S)
#define CONFIG_AUTOTRACK (T)
#define CONFIG_AUTOMAP (U)
#define CONFIG_AUTOWRAPTELLS (V)
#define CONFIG_PRACSYS_TESTER (W) // All pracs use the new system
#define CONFIG_NOCHARM (X)
#define CONFIG_NOHEROMSG (Y)
#define CONFIG_NONEWBIE (Z) // handles turning newbie channel off/on
#define CONFIG_NONAMES (aa)// allows players to not see introduce names
#define CONFIG_NOAUTOANSWER (bb)// Prevents players from autoanswering an askname request
#define CONFIG_HIDE_HIDDEN_AREAS (cc) // imms can choose to hide the areas
#define CONFIG_NAMES_BEFORE_SHORT (dd) // When a players name is shown, it is displayed before their short
// config2 flags
#define CONFIG2_READ_BUILDER_LEGAL (A)
#define CONFIG2_NOAUTOSAYMOTE (B)
#define CONFIG2_AUTOSAYCOLOURCODES (C) // if set, { is changed to {{
#define CONFIG2_NAME_ONLY_FOR_KNOWN (D) // display only their name if they are introduced
#define CONFIG2_AUTODAMAGE (E) // show hitpoints damage done
#define CONFIG2_NOPKILL (F) // this player can not pkill, nor be pkilled
#define CONFIG2_FULL_EXITS (G) // sees full exits with their autoexit
#define CONFIG2_NO_DETECT_OLDSTYLE_NOTE_WRITING (H)// if unset, {} is converted into `1 with 'note +'
#define CONFIG2_NOMAPEXITS (I)
#define CONFIG2_NOMAPBLANKS (J)
#define CONFIG2_AUTOWIZILOGIN (K)
#define CONFIG2_AUTOWHOINVISLOGIN (L)
#define CONFIG2_NO_BATTLELAG_PROMPT (M)
#define CONFIG2_ACCURATE_LASTON_TIMES (N) // if set, the player gets the times everyone has been on
#define CONFIG2_HIGHIMMORTAL_LASTON_ACCESS (O) // if set, the player gets high immortal laston access
#define CONFIG2_AUTOKEEPALIVE (P)
// pconfig flags
#define PCONFIG_FILLER (A) // does nothing
// sayflags
#define SAYFLAG_ONLY_REMEMBERED_CHAR (A)
#define SAYFLAG_NO_SAYMOTE (B)
#define SAYFLAG_CONVERT_COLOUR (C)
// combat_initiate_types
#define CIT_GENERAL (A)
#define CIT_AGRESSIVE_ACTION (B)
#define CIT_CASTING_SPELL (C)
#define CIT_NO_BYPASSDUEL (D)
#define CIT_SILENT (E)
// Help flags
#define HELP_NOBLE (A)
#define HELP_NSUPPORT (B)
#define HELP_BUILDER (C)
#define HELP_RPSUPPORT (D)
#define HELP_REDIRECTION_ENTRY (E)
#define HELP_HIDE_KEYWORDS (F)
#define HELP_MUD_SPECIFIC (G)
#define HELP_MUD_SHOULD_CUSTOMIZE (H) // mud should customize for their mud
#define HELP_WORDWRAPPED (I)
#define HELP_INCOMPLETE (K)
#define HELP_HIDE_PREVNEXT (L)
#define HELP_DISPLAY_MXP_DOUBLE (M)
#define HELP_HIDE_HEADER_FOOTER (N)
#define HELP_REMOVEHELP (ee)
// Council flags
#define COUNCIL_BALANCE (A)
#define COUNCIL_CLAN (B)
#define COUNCIL_CODE (C)
#define COUNCIL_LAW (D)
#define COUNCIL_MYTHOS (E)
#define COUNCIL_REALM (F)
#define COUNCIL_RP (G)
#define COUNCIL_SUPPORT (H)
#define COUNCIL_HEADBALANCE (I)
#define COUNCIL_HEADCLAN (J)
#define COUNCIL_HEADCODE (K)
#define COUNCIL_HEADLAW (L)
#define COUNCIL_HEADMYTHOS (M)
#define COUNCIL_HEADREALM (N)
#define COUNCIL_HEADRP (O)
#define COUNCIL_HEADSUPPORT (P)
#define COUNCIL_HEADSTORYLINE (Q)
#define COUNCIL_ADMIN (R)
// WIZnet flags
#define WIZ_ON (A)
#define WIZ_TICKS (B)
#define WIZ_LOGINS (C)
#define WIZ_SITES (D)
#define WIZ_LINKS (E)
#define WIZ_DEATHS (F)
#define WIZ_RESETS (G)
#define WIZ_MOBDEATHS (H)
#define WIZ_FLAGS (I)
#define WIZ_PENALTIES (J)
#define WIZ_THEFTS (K)
#define WIZ_LEVELS (L)
#define WIZ_SECURE (M)
#define WIZ_SWITCHES (N)
#define WIZ_SNOOPS (O)
#define WIZ_AUTOON (P)
#define WIZ_LOAD (Q)
#define WIZ_NEWBIE (R)
#define WIZ_SHOWCHANNEL (S)
#define WIZ_SPAM (T)
#define WIZ_RPEXP (U)
#define WIZ_BUGS (V)
#define WIZ_BETA (W)
#define WIZ_PLAYER_LOG (X)
#define WIZ_WHISPERS (Y)
#define WIZ_RPMONITOR (Z)
#define WIZ_NOHELP (aa)
#define WIZ_QUESTING (bb)
#define WIZ_PRAYERS_DREAMS (cc)
#define WIZ_MEMCHECK (dd)
#define WIZ_NEWBIETELL (ee)
// mob memory settings
#define MEM_CUSTOMER (A)
#define MEM_SELLER (B)
#define MEM_HOSTILE (C)
#define MEM_AFRAID (D)
/*
* Types of attacks.
* Must be non-overlapping with spell/skill types,
* but may be arbitrary beyond that.
*/
#define TYPE_UNDEFINED -1
#define TYPE_HIT 1000
// Types of entries in the skill_table
#define SKTYPE_UNDEFINED 0
#define SKTYPE_SPELL 1
#define SKTYPE_SKILL 2
#define SKTYPE_OTHER 3
// Types of entries in the skill_table
#define SKFLAGS_SPNEVER_LEARNT_BY_LEVELING (A)
#define SKFLAGS_SPMUST_BE_SET_TO_GET (B)
#define SKFLAGS_TEACH_SPGAIN (C)
#define SKFLAGS_LEVEL_SPGAIN (D)
#define SKFLAGS_STUDY_SPGAIN (E)
#define SKFLAGS_NO_PCTARGET (F)
#define SKFLAGS_NO_NPCTARGET (G)
#define SKFLAGS_RENAMABLE (H)
#define SKFLAGS_NO_INTERCLASS_TEACH (I)
#define SKFLAGS_NEW_IMPROVE_SYSTEM (J)
#define SKFLAGS_NO_GAIN (K)
#define SKFLAGS_NO_NEGATIVE_HP_AT_AFFECTOFF (L)
#define SKFLAGS_MAGICAL_ANTIPATHY (M)
#define SKFLAGS_NO_SCRIBE (N)
#define SKFLAGS_USE_RACE_RESTRICTIONS (O)
#define SKFLAGS_NO_PRAC (P)
// dynspell_type spellpairs_table[] flags
#define SPFUNC_NOTEXT (A) // spell contains no custom messages
#define SPFUNC_NODAMTYPE (B) // spell function doesn't use damtypes
#define SPFUNC_DAMTYPE (C) // spell supports dynamic damtype
// Target types.
#define TAR_IGNORE 0
#define TAR_CHAR_OFFENSIVE 1
#define TAR_CHAR_DEFENSIVE 2
#define TAR_CHAR_SELF 3
#define TAR_OBJ_INV 4
#define TAR_OBJ_CHAR_DEF 5
#define TAR_OBJ_CHAR_OFF 6
#define TAR_MOB_OFFENSIVE 7
#define TAR_OBJ_MOB_OFF 8
#define TAR_DIRECTION 9
#define TARGET_CHAR 0
#define TARGET_OBJ 1
#define TARGET_ROOM 2
#define TARGET_NONE 3
/**************************************************************************/
// directions used for room exits
#define DIR_NORTH (0)
#define DIR_EAST (1)
#define DIR_SOUTH (2)
#define DIR_WEST (3)
#define DIR_UP (4)
#define DIR_DOWN (5)
#define DIR_NORTHEAST (6)
#define DIR_SOUTHEAST (7)
#define DIR_SOUTHWEST (8)
#define DIR_NORTHWEST (9)
/**************************************************************************/
// MOBprog trigger defines
#define TRIG_ACT (A)
#define TRIG_BRIBE (B)
#define TRIG_DEATH (C)
#define TRIG_ENTRY (D)
#define TRIG_FIGHT (E)
#define TRIG_GIVE (F)
#define TRIG_GREET (G)
#define TRIG_GRALL (H)
#define TRIG_KILL (I)
#define TRIG_HPCNT (J)
#define TRIG_RANDOM (K)
#define TRIG_SPEECH (L)
#define TRIG_EXIT (M)
#define TRIG_EXALL (N)
#define TRIG_DELAY (O)
#define TRIG_SURR (P)
#define TRIG_REPOP (Q)
#define TRIG_ROOMDEATH (R)
#define TRIG_TICK (S)
#define TRIG_HOUR (T)
#define TRIG_COMMAND (U)
#define TRIG_PREKILL (V)
#define TRIG_SAYTO (W)
#define TRIG_PREMOVE (X) // just before a mob moves to a new room
#define TRIG_LOGINROOM (Y) // just after someone has logged into the room
#define TRIG_LOGINAREA (Z) // just after someone has logged into the area
// room for a logingame (aa) trigger?
#define TRIG_LOGOUTROOM (bb) // just after someone has logged out of the room
#define TRIG_LOGOUTAREA (cc) // just after someone has logged out of the area
#define TRIG_PRETRAIN (dd) // before a player gets training from a mob
#define TRIG_PREPRAC (ee) // before a player gets practicing from a mob
/**************************************************************************/
// Second set of triggers
/**************************************************************************/
// bit flags for grouptable_flags[]
#define SKILLGROUP_CREATION_SELECTABLE (A)
#define SKILLGROUP_FREE_FOR_ALL (B)
/**************************************************************************/
// Report Unfound CodeHelp flags
#define CODEHELP_LOG (A)// system log
#define CODEHELP_NO_HELPFILE (B)// no helpfile tracking file
#define CODEHELP_IMM (C)// imms
#define CODEHELP_ADMIN (D)// admin
#define CODEHELP_EVERYONE (E)// all players
#define CODEHELP_WIZNET (F)// display a message on wiznet
#define CODEHELP_ALL_BUT_PLAYERS ( CODEHELP_LOG |CODEHELP_NO_HELPFILE \
|CODEHELP_IMM |CODEHELP_ADMIN |CODEHELP_WIZNET)
/**************************************************************************/
// language flags
#define LANGFLAG_CHANGED (A) // language has been edited
#define LANGFLAG_SYSTEM_LANGUAGE (B) // language used by the system
#define LANGFLAG_NO_SCRAMBLE (C) // language doesn't scramble the text
#define LANGFLAG_NO_HOLYSPEECH (D) // holyspeech doesn't work with it
#define LANGFLAG_NO_ORDER (E) // can't be ordered to change to the language
#define LANGFLAG_REVERSE_TEXT (F) // text put thru the reverse function
#define LANGFLAG_NO_LANGUAGE_NAME (G) // the name of the language isn't shown
#define LANGFLAG_NO_SKILL_REQUIRED (H) // as if you have 100% in the language
#define LANGFLAG_NO_COMMAND_ACCESS (I) // not accessed as a command
#define LANGFLAG_IMMONLY (J) //
#define LANGFLAG_SCRAMBLE_IN_OOC (K) // If on, the language can be scrambled in ooc
/**************************************************************************/
// ATTUNE defines
#define ATTUNE_NEED_TO_USE (A) // if set, item needs attuning
#define ATTUNE_EQUAL_LEVEL (B) // need to be of >= level to object
#define ATTUNE_VANISH (C) // extract_obj on failure
#define ATTUNE_TRIVIAL (D) // +25%
#define ATTUNE_EASY (E) // +10%
#define ATTUNE_HARD (F) // -10%
#define ATTUNE_INFURIATING (G) // -25%
#define ATTUNE_PREVIOUS (H) // Set once an item has been attuned
#define ATTUNE_ONCE_ONLY (I) // if ATTUNE_PREVIOUS, can't be reattuned
extern char *target_name;
// Global constants.
extern struct class_type class_table [MAX_CLASS+1];
extern const struct weapon_type weapon_table [];
extern const struct totem_type totem_table [TOTEM_MAX+1];
extern const struct item_type item_table [];
extern const struct wiznet_type wiznet_table [];
extern const struct attack_type attack_table [];
extern const struct liq_type liq_table [];
extern struct skillgroup_type skillgroup_table [MAX_SKILLGROUP+1];
extern struct social_old_type social_table [MAX_SOCIALS];
extern class skill_type skill_table [MAX_SKILL];
extern struct hclss_type hclass_table [MAX_SKILL];
extern const struct deity_type deity_table [MAX_DEITY];
extern const struct timefield_type timefield_table [];
extern const struct modifier_type modifier_table [];
extern char * const he_she[];
extern char * const him_her[];
extern char * const his_her[];
// Global variables.
extern SHOP_DATA * shop_first;
extern cInnData* pFirstInn;
extern char_data * char_list;
extern connection_data * connection_list;
extern OBJ_DATA * object_list;
extern MPROG_CODE * mprog_list;
extern char bug_buf [];
extern bool fLogAll;
extern FILE * fpReserve;
extern FILE * fpAppend2FilReserve;
extern KILL_DATA kill_table [];
extern char log_buf [];
extern TIME_INFO_DATA time_info;
extern WEATHER_DATA weather_info [SECT_MAX];
extern bool MOBtrigger;
extern const struct directories_type directories_table[];
/**************************************************************************/
// general olc flags
#define OLC_CHANGED (A) // whatever is being edited has been modified
/**************************************************************************/