EmberMUD-0.9.40-Pre4/
EmberMUD-0.9.40-Pre4/area/MOBProgs/
EmberMUD-0.9.40-Pre4/area/OBJProgs/
EmberMUD-0.9.40-Pre4/area/ROOMProgs/
EmberMUD-0.9.40-Pre4/clan/
EmberMUD-0.9.40-Pre4/gods/
EmberMUD-0.9.40-Pre4/log/
EmberMUD-0.9.40-Pre4/player/
EmberMUD-0.9.40-Pre4/src/MSVC/
EmberMUD-0.9.40-Pre4/src/Sleep/
EmberMUD-0.9.40-Pre4/src/StartMUD/
EmberMUD-0.9.40-Pre4/src/Win32Common/
/* Most of this file is just temporary until I code up a structure to hold
 *  the strings and some commands to edit them online.
 */
#ifndef _CONFIG_H_
#define _CONFIG_H_

/* Color defines for use in config.h primarily */
#define GREY          "`w"
#define WHITE         "`W"
#define GREEN         "`G"
#define BLUE          "`B"
#define RED           "`R"
#define CYAN          "`C"
#define YELLOW        "`Y"
#define MAGENTA       "`M"
#define DARK_GREEN    "`g"
#define DARK_BLUE     "`b"
#define DARK_RED      "`r"
#define DARK_CYAN     "`c"
#define DARK_YELLOW   "`y"
#define DARK_MAGENTA  "`m"
#define DARK_GREY     "`K"
#define BLACK         "`k"

/* RT ASCII conversions -- used so we can have letters in this file */

#define A                       1
#define B                       2
#define C                       4
#define D                       8
#define E                       16
#define F                       32
#define G                       64
#define H                       128

#define I                       256
#define J                       512
#define K                       1024
#define L                       2048
#define M                       4096
#define N                       8192
#define O                       16384
#define P                       32768

#define Q                       65536
#define R                       131072
#define S                       262144
#define T                       524288
#define U                       1048576
#define V                       2097152
#define W                       4194304
#define X                       8388608

#define Y                       16777216
#define Z                       33554432
#define aa                      67108864        /* doubled due to conflicts */
#define bb                      134217728
#define cc                      268435456    
#define dd                      536870912
#define ee                      1073741824

/*
 * String and memory management parameters.
 */
#define MAX_KEY_HASH             1024
#define MAX_STRING_LENGTH        4096
#define MAX_INPUT_LENGTH          256
#define PAGELEN                    22

/*
 * Data files used by the server.
 *
 * AREA_LIST contains a list of areas to boot.
 * All files are read in completely at bootup.
 * Most output files (bug, idea, typo, shutdown) are append-only.
 *
 * The NULL_FILE is held open so that we have a stream handle in reserve,
 * so players can go ahead and telnet to all the other descriptors.
 * Then we close it whenever we need to open a file (e.g. a save file).
 */
#if defined(WIN32)
#define PLAYER_DIR              "..\\player\\"  // Player Files
#define PLAYER_TEMP             "..\\player\\temp"
#define GOD_DIR                 "..\\gods\\"            // List of Gods
#define NULL_FILE               "nul"                   // To reserve one stream
#define MOB_DIR                 "MOBProgs\\"            // MOBProg Files
#define ROOM_DIR                "ROOMProgs\\"   // ROOMProg Files
#define OBJ_DIR                 "OBJProgs\\"            // OBJProg Files
#define CLAN_DIR                "..\\clan\\"  // Clan logs
#endif

#if defined(unix)
#define PLAYER_DIR      "../player/"    /* Player files                 */
#define PLAYER_TEMP     "../player/temp"
#define GOD_DIR         "../gods/"      /* list of gods                 */
#define NULL_FILE       "/dev/null"     /* To reserve one stream        */
#define MOB_DIR         "MOBProgs/"     /* MOBProg files                */
#define ROOM_DIR        "ROOMProgs/"    /* ROOMProg files*/
#define OBJ_DIR             "OBJProgs/" /* OBJProg files*/
#define CLAN_DIR                "../clan/"
#endif

#define AREA_LIST       "area.lst"      /* List of areas                */
#define HELP_FILE       "help.are"      /* Help file                    */

#define BUG_FILE        "bugs.txt"      /* For 'bug'                            */
#define IDEA_FILE       "ideas.txt"     /* For 'idea'                   */
#define TYPO_FILE       "typos.txt"     /* For 'typo'                   */
#define NOTE_FILE       "notes.txt"     /* For 'notes'                  */
#define SHUTDOWN_FILE   "shutdown.txt"  /* For 'shutdown'               */
#define CHAOS_FILE      "chaos.txt"     /* For chaos points             */

/*
 * Game parameters.
 * Increase the max'es if you add more of something.
 * Adjust the pulse numbers to suit yourself.
 */
#define MAX_SOCIALS               256
#define MAX_SKILL                 150
#define MAX_GROUP                  30
#define MAX_IN_GROUP               20
#define MAX_ALIAS                  20
#define MAX_CLASS                   4
#define MAX_PC_RACE                10
#define MAX_LEVEL                  60
#define MAX_EXP            2147483647
/* Allows you to tune how easy/hard it is to level.  For instance 0.75 would give you only
 * 75% of the exp you'd normally get from any task basically making it 25% hard to level - Zane */
#define EXP_MULTIPLIER				1 
#define MAX_ATTACK_TYPE            32
#define MAX_LAST_LENGTH            20 /*How long can the last list be?*/
#define LEVEL_HERO                 (MAX_LEVEL - 9)
#define LEVEL_IMMORTAL             (MAX_LEVEL - 7)

#define PULSE_PER_SECOND            4
#define PULSE_VIOLENCE            ( 3 * PULSE_PER_SECOND)
#define PULSE_MOBILE              ( 4 * PULSE_PER_SECOND)
#define PULSE_TICK                (30 * PULSE_PER_SECOND)
#define PULSE_AREA                (60 * PULSE_PER_SECOND)

#define IMPLEMENTOR             MAX_LEVEL
#define CREATOR                 (MAX_LEVEL - 1)
#define SUPREME                 (MAX_LEVEL - 2)
#define DEITY                   (MAX_LEVEL - 3)
#define GOD                     (MAX_LEVEL - 4)
#define IMMORTAL                (MAX_LEVEL - 5)
#define DEMI                    (MAX_LEVEL - 6)
#define ANGEL                   (MAX_LEVEL - 7)
#define AVATAR                  (MAX_LEVEL - 8)
#define HERO                    LEVEL_HERO

#define CLASS_MAGE              0
#define CLASS_CLERIC            1
#define CLASS_THIEF             2
#define CLASS_WARRIOR           3
#define CLASS_CONSOLE           4

/*
 * Per-class stuff.
 */

#define MAX_GUILD       2
#define MAX_STATS       5
#define STAT_STR        0
#define STAT_INT        1
#define STAT_WIS        2
#define STAT_DEX        3
#define STAT_CON        4

/********************************************************
 *                                                      *
 * Clan stuff  -- By Kyle Boyd                          *
 *                                                      *
 ********************************************************/

#define MAX_CLAN                   10
#define MAX_CLAN_MEMBERS           30
#define MAX_RANK                    5
#define MIN_CLAN_LEVEL             15
#define RANK_CAN_ACCEPT             3

/* Clan anti-flags */
#define CLAN_ANTI_MAGE          (A)
#define CLAN_ANTI_CLERIC        (B)
#define CLAN_ANTI_THIEF         (C)
#define CLAN_ANTI_WARRIOR       (D)
#define CLAN_ANTI_GOOD          (H)
#define CLAN_ANTI_EVIL          (I)
#define CLAN_REQ_PK             (J)
#define CLAN_NO_PK              (K)

/* Clan flags */
#define CLAN_CREATING           (A)  /* just made... not available to chars */
#define CLAN_ACTIVE             (B)  /* Actively recruiting */
#define CLAN_INACTIVE           (C)  /* Not recruiting */
#define CLAN_DISBANDING         (D)  /* Disbanding... chars must resign soon. */
#define CLAN_DEAD               (E)  /* Chars forced to resign. */
#define CLAN_AUTO_ACCEPT        (F)  /* autoaccept new members */
#define CLAN_PRIVATE            (G)  /* Members not displayed on the who list except to each other. */
#define CLAN_SECRET             (H)  /* Only members and IMPs even know about this clan. */

/* Flags for joining a clan */
#define JOIN_START              0       /* Not trying to join a clan */
#define JOIN_SEE_LIST           1       /* Starts trying to join, so show char the list */
#define JOIN_CONFIRM            2       /* make sure char is joining the right clan */
#define JOIN_PETITIONING        3       /* char is petitioning to join a clan that is not autoaccept */
#define JOIN_CONSIDERING        4       /* char is considering to accept a petitioner */
#define JOIN_OFFERING           5       /* char is offering membership to someone */
#define JOIN_DECIDING           6       /* char is deciding to accept or decline an offer to join */
#define JOIN_RESIGNING          7       /* char needs to confirm resignation */

/*********** End Clan Configs ************/

/********************************************************
 *                                                      *
 * Mob/Room/Obj Progs                                   *
 *                                                      *
 ********************************************************/

#define ERROR_PROG             -1
#define IN_FILE_PROG            0
#define ACT_PROG                A       /* mprogs, rprogs, oprogs       */
#define SPEECH_PROG             B       /* mprogs, rprogs, oprogs       */
#define RAND_PROG               C       /* mprogs       rprogs  oprogs  */
#define FIGHT_PROG              D       /* mprogs                       */
#define RFIGHT_PROG             D       /*              rprogs          */
#define DEATH_PROG              E       /* mprogs                       */
#define RDEATH_PROG             E       /*              rprogs          */
#define HITPRCNT_PROG           F       /* mprogs                       */
#define ENTRY_PROG              G       /* mprogs                       */
#define ENTER_PROG              G       /*              rprogs          */
#define GREET_PROG              H       /* mprogs                       */
#define ALL_GREET_PROG          I       /* mprogs                       */
#define GIVE_PROG               J       /* mprogs                       */
#define BRIBE_PROG              K       /* mprogs                       */
#define LEAVE_PROG              L       /*              rprogs          */
#define SLEEP_PROG              M       /*              rprogs          */
#define REST_PROG               N       /*              rprogs          */
#define WEAR_PROG               O       /*                      oprogs  */
#define REMOVE_PROG             P       /*                      oprogs  */
#define SAC_PROG                Q       /*                      oprogs  */
#define EXA_PROG                R       /*                      oprogs  */
#define LOOK_PROG               S       /*                      oprogs  */
#define ZAP_PROG                T       /*                      oprogs  */
#define GET_PROG                U       /*                      oprogs  */
#define DROP_PROG               V       /*                      oprogs  */
#define DAMAGE_PROG             W       /*                      oprogs  */
#define REPAIR_PROG             X       /*                      oprogs  */
#define USE_PROG                Y       /*                      oprogs  */
#define COMMAND_PROG            Z       /* mprogs       rprogs  oprogs  */

/********* End Mob/Room/Obj Progs **********/

/*
 * Time and weather stuff.
 */
#define SUN_DARK                    0
#define SUN_RISE                    1
#define SUN_LIGHT                   2
#define SUN_SET                     3

#define SKY_CLOUDLESS               0
#define SKY_CLOUDY                  1
#define SKY_RAINING                 2
#define SKY_LIGHTNING               3

/*
 * Well known mob virtual numbers.
 * Defined in #MOBILES.
 */
#define MOB_VNUM_FIDO              3090
#define MOB_VNUM_CITYGUARD         3060
#define MOB_VNUM_VAMPIRE           3404

/* for newly created characters - Kyle */
#define STARTING_PRACTICES 5
#define STARTING_TRAINS 1
#define STARTING_TITLE "the newbie"

/* Channel colors */
#define COLOR_AUC   DARK_MAGENTA
#define COLOR_GOS   BLUE
#define COLOR_QA    DARK_RED
#define COLOR_OOC   CYAN
#define COLOR_IMM   WHITE
#define COLOR_SAY   GREEN
#define COLOR_SHOUT WHITE
#define COLOR_TELL  RED
#define COLOR_YELL  YELLOW
#define CFG_INFO    "`WINFO: `R"

/* These strings probably should NOT contain color codes */
#define CFG_QUIT "Alas, all good things must come to an end.\n\r"
#define CFG_CONNECT_MSG "Welcome to a MUD based on EmberMUD.\n\r"
#define CFG_ASK_ANSI "Use ANSI Color? [Y/n]: "

/* Color codes are just fine in these strings, though */

/* The number after CFG_DAM is the % of the victim's maximum HP damage done */
#define CFG_DAM0   "miss"
#define CFG_DAM0S  "misses"
#define CFG_DAM2   "scratch"
#define CFG_DAM2S  "scratches"
#define CFG_DAM4   "graze"
#define CFG_DAM4S  "grazes"
#define CFG_DAM6   "hit"
#define CFG_DAM6S  "hits"
#define CFG_DAM8   "injure"
#define CFG_DAM8S  "injures"
#define CFG_DAM10  "wound"
#define CFG_DAM10S "wounds"
#define CFG_DAM12  "maul"
#define CFG_DAM12S "mauls"
#define CFG_DAM14  "decimate"
#define CFG_DAM14S "decimates"
#define CFG_DAM16  "devastate"
#define CFG_DAM16S "devastates"
#define CFG_DAM18  "maim"
#define CFG_DAM18S "maims"
#define CFG_DAM20  "MUTILATE"
#define CFG_DAM20S "MUTILATES"
#define CFG_DAM22  "PULVERISE"
#define CFG_DAM22S "PULVERISES"
#define CFG_DAM24  "DISMEMBER"
#define CFG_DAM24S "DISMEMBERS"
#define CFG_DAM26  "MASSACRE"
#define CFG_DAM26S "MASSACRES"
#define CFG_DAM28  "MANGLE"
#define CFG_DAM28S "MANGLES"
#define CFG_DAM30  "*** DEMOLISH ***"
#define CFG_DAM30S "*** DEMOLISHES ***"
#define CFG_DAM37  "*** DEVASTATE ***"
#define CFG_DAM37S "*** DEVASTATES ***"
#define CFG_DAM50  "=== OBLITERATE ==="
#define CFG_DAM50S "=== OBLITERATES ==="
#define CFG_DAM63  ">>> ANNIHILATE <<<"
#define CFG_DAM63S ">>> ANNIHILATES <<<"
#define CFG_DAM75  "<<< ERADICATE >>>"
#define CFG_DAM75S "<<< ERADICATES >>>"
#define CFG_DAM83  "<><><> BUTCHER <><><>"
#define CFG_DAM83S "<><><> BUTCHERS <><><>"
#define CFG_DAM93  "<><><> DISEMBOWEL <><><>"
#define CFG_DAM93S "<><><> DISEMBOWELS <><><>"
#define CFG_DAM_HUGE  "do UNSPEAKABLE things to"
#define CFG_DAM_HUGES "does UNSPEAKABLE things to"

/*
 * TO types for act.
 */
#define TO_ROOM             0
#define TO_NOTVICT          1
#define TO_VICT             2
#define TO_CHAR             3

/*
 * Room affects.
 */

#define RAFF_DAMAGE      1

/*
 * Shop types.
 */
#define MAX_TRADE        5

/*
* supermob vnums...used for room progs and
* eventually object progs
*/
#define MOB_VNUM_SUPERMOB       4
#define ROOM_VNUM_SUPERMOB      4

/*
 * Connected state for a channel.
 */
#define CON_PLAYING                      0
#define CON_GET_NAME                     1
#define CON_GET_OLD_PASSWORD             2
#define CON_CONFIRM_NEW_NAME             3
#define CON_GET_NEW_PASSWORD             4
#define CON_CONFIRM_NEW_PASSWORD         5
#define CON_GET_NEW_RACE                 6
#define CON_GET_NEW_SEX                  7
#define CON_GET_NEW_CLASS                8
#define CON_GET_ALIGNMENT                9
#define CON_DEFAULT_CHOICE              10
#define CON_GEN_GROUPS                  11 
#define CON_PICK_WEAPON                 12
#define CON_READ_IMOTD                  13
#define CON_READ_MOTD                   14
#define CON_BREAK_CONNECT               15
#define CON_GET_STATS                   16
#define CON_GET_ANSI                    17
#define CON_COPYOVER_RECOVER            18
#define CON_NOTE_TO                     19
#define CON_NOTE_SUBJECT                20
#define CON_NOTE_EXPIRE                 21
#define CON_NOTE_TEXT                   22
#define CON_NOTE_FINISH                 23

/***************************************************************************
 *                                                                         *
 *                   VALUES OF INTEREST TO AREA BUILDERS                   *
 *                   (Start of section ... start here)                     *
 *                                                                         *
 ***************************************************************************/

/*
 * ACT bits for mobs.
 * Used in #MOBILES.
 */
#define ACT_IS_NPC              (A)             /* Auto set for mobs    */
#define ACT_SENTINEL            (B)             /* Stays in one room    */
#define ACT_SCAVENGER           (C)             /* Picks up objects     */
#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_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_MOBINVIS            (W)
#define ACT_IS_HEALER           (aa)
#define ACT_GAIN                (bb)
#define ACT_UPDATE_ALWAYS       (cc)
#define ACT_NO_KILL             (dd)

/* damage classes */
#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

/* 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)

/* 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)
 
/* RES bits for mobs */
#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)
 
/* VULN bits for mobs */
#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_WOOD               (X)
#define VULN_SILVER             (Y)
#define VULN_IRON               (Z)
 
/* 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_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_HOLD                (G)             /* Unused       */
#define AFF_SANCTUARY           (H)

#define AFF_FAERIE_FIRE         (I)
#define AFF_INFRARED            (J)
#define AFF_CURSE               (K)
#define AFF_FLAMING             (L)             /* Unused       */
#define AFF_POISON              (M)
#define AFF_PROTECT             (N)
#define AFF_PARALYSIS           (O)             /* Unused       */
#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_WEB                 (dd)

/*
 * Sex.
 * Used in #MOBILES.
 */
#define SEX_NEUTRAL                   0
#define SEX_MALE                      1
#define SEX_FEMALE                    2

/* 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

/*
 * Well known object virtual numbers.
 * Defined in #OBJECTS.
 */
#define OBJ_VNUM_MONEY_ONE            2
#define OBJ_VNUM_MONEY_SOME           3

#define OBJ_VNUM_CORPSE_NPC          10
#define OBJ_VNUM_CORPSE_PC           11
#define OBJ_VNUM_SEVERED_HEAD        12
#define OBJ_VNUM_TORN_HEART          13
#define OBJ_VNUM_SLICED_ARM          14
#define OBJ_VNUM_SLICED_LEG          15
#define OBJ_VNUM_GUTS                16
#define OBJ_VNUM_BRAINS              17

#define OBJ_VNUM_MUSHROOM            20
#define OBJ_VNUM_LIGHT_BALL          21
#define OBJ_VNUM_SPRING              22

#define OBJ_VNUM_PIT               3010

#define OBJ_VNUM_SCHOOL_MACE       3700
#define OBJ_VNUM_SCHOOL_DAGGER     3701
#define OBJ_VNUM_SCHOOL_SWORD      3702
#define OBJ_VNUM_SCHOOL_VEST       3703
#define OBJ_VNUM_SCHOOL_SHIELD     3704
#define OBJ_VNUM_SCHOOL_BANNER     3716
#define OBJ_VNUM_MAP               3162
#define OBJ_VNUM_BLANK_SCROLL      3398
#define OBJ_VNUM_EMPTY_VIAL        3399

/*
 * 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_TREASURE                 8
#define ITEM_ARMOR                    9
#define ITEM_POTION                  10
#define ITEM_CLOTHING                11
#define ITEM_FURNITURE               12
#define ITEM_TRASH                   13
#define ITEM_CONTAINER               15
#define ITEM_DRINK_CON               17
#define ITEM_KEY                     18
#define ITEM_FOOD                    19
#define ITEM_MONEY                   20
#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

/*
 * Extra flags.
 * Used in #OBJECTS.
 */
#define ITEM_GLOW               (A)
#define ITEM_HUM                (B)
#define ITEM_DARK               (C)
#define ITEM_LOCK               (D)
#define ITEM_EVIL               (E)
#define ITEM_INVIS              (F)
#define ITEM_MAGIC              (G)
#define ITEM_NODROP             (H)
#define ITEM_BLESS              (I)
#define ITEM_ANTI_GOOD          (J)
#define ITEM_ANTI_EVIL          (K)
#define ITEM_ANTI_NEUTRAL       (L)
#define ITEM_NOREMOVE           (M)
#define ITEM_INVENTORY          (N)
#define ITEM_NOPURGE            (O)
#define ITEM_ROT_DEATH          (P)
#define ITEM_VIS_DEATH          (Q)
#define ITEM_ANTI_CLERIC          (R)
#define ITEM_ANTI_THIEF           (S)
#define ITEM_ANTI_WARRIOR         (T)
#define ITEM_ANTI_MAGE            (X)
/*
 * Added for Random Object code
 */
#define ITEM_PLAIN_ARMOR      (A)
#define ITEM_MAGIC_ARMOR      (B)
#define ITEM_RAND_RING        (C)
/* #define ITEM_MAGIC_ITEM    (D) */
#define ITEM_PLAIN_WEAPON     (E)
#define ITEM_MAGIC_WEAPON     (F)
#define ITEM_RAND_CONTAINER   (G)
/* #define ITEM_RAND_LIGHT    (H) */
#define ITEM_RAND_ANY (I)

/*
 * Wear flags.
 * Used in #OBJECTS.
 */
#define ITEM_TAKE               (A)
#define ITEM_WEAR_FINGER        (B)
#define ITEM_WEAR_NECK          (C)
#define ITEM_WEAR_BODY          (D)
#define ITEM_WEAR_HEAD          (E)
#define ITEM_WEAR_LEGS          (F)
#define ITEM_WEAR_FEET          (G)
#define ITEM_WEAR_HANDS         (H)
#define ITEM_WEAR_ARMS          (I)
#define ITEM_WEAR_SHIELD        (J)
#define ITEM_WEAR_ABOUT         (K)
#define ITEM_WEAR_WAIST         (L)
#define ITEM_WEAR_WRIST         (M)
#define ITEM_WIELD              (N)
#define ITEM_HOLD               (O)
#define ITEM_TWO_HANDS          (P)

/* weapon class */
#define WEAPON_EXOTIC           0
#define WEAPON_SWORD            1
#define WEAPON_DAGGER           2
#define WEAPON_SPEAR            3
#define WEAPON_MACE             4
#define WEAPON_AXE              5
#define WEAPON_FLAIL            6
#define WEAPON_WHIP             7       
#define WEAPON_POLEARM          8

/* 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)

/*
 * Apply types (for affects).
 * Used in #OBJECTS.
 */
#define APPLY_NONE                    0
#define APPLY_STR                     1
#define APPLY_DEX                     2
#define APPLY_INT                     3
#define APPLY_WIS                     4
#define APPLY_CON                     5
#define APPLY_SEX                     6
#define APPLY_CLASS                   7
#define APPLY_LEVEL                   8
#define APPLY_AGE                     9
#define APPLY_HEIGHT                 10
#define APPLY_WEIGHT                 11
#define APPLY_MANA                   12
#define APPLY_HIT                    13
#define APPLY_MOVE                   14
#define APPLY_GOLD                   15
#define APPLY_EXP                    16
#define APPLY_AC                     17
#define APPLY_HITROLL                18
#define APPLY_DAMROLL                19
#define APPLY_SAVING_PARA            20
#define APPLY_SAVING_ROD             21
#define APPLY_SAVING_PETRI           22
#define APPLY_SAVING_BREATH          23
#define APPLY_SAVING_SPELL           24
#define APPLY_ALIGN                  25

/*
 * Values for containers (value[1]).
 * Used in #OBJECTS.
 */
#define CONT_CLOSEABLE                1
#define CONT_PICKPROOF                2
#define CONT_CLOSED                   4
#define CONT_LOCKED                   8

/*
 * Well known room virtual numbers.
 * Defined in #ROOMS.
 */
#define ROOM_VNUM_LIMBO               2
#define ROOM_VNUM_CHAT             1200
#define ROOM_VNUM_TEMPLE           3001
#define ROOM_VNUM_ALTAR            3054
#define ROOM_VNUM_SCHOOL           3700

/*
 * Room flags.
 * Used in #ROOMS.
 */
#define ROOM_DARK               (A)
#define ROOM_NO_MOB             (C)
#define ROOM_INDOORS            (D)

#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_DONATION           (T)
#define ROOM_NOTELEPORT         (U)
#define ROOM_MARK               (V)

/*
 * Directions.
 * Used in #ROOMS.
 */
#define DIR_NORTH                     0
#define DIR_EAST                      1
#define DIR_SOUTH                     2
#define DIR_WEST                      3
#define DIR_UP                        4
#define DIR_DOWN                      5

/*
 * Exit flags.
 * Used in #ROOMS.
 */
#define EX_ISDOOR                     1
#define EX_CLOSED                     2
#define EX_LOCKED                     4
#define EX_PICKPROOF                  8
#define EX_PASSPROOF                 16
#define EX_HIDDEN                    32

/*
 * 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_UNUSED                   8
#define SECT_AIR                      9
#define SECT_DESERT                  10
#define SECT_MAX                     11

/*
 * Equpiment 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_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_L                 14
#define WEAR_WRIST_R                 15
#define WEAR_WIELD                   16
#define WEAR_HOLD                    17
#define WEAR_SECOND_WIELD            18
#define MAX_WEAR                     19

/*********** End Area Builder Values ***********/

/*
 * Conditions.
 */
#define COND_DRUNK                    0
#define COND_FULL                     1
#define COND_THIRST                   2

/*
 * Positions.
 */
#define POS_DEAD                      0
#define POS_MORTAL                    1
#define POS_INCAP                     2
#define POS_STUNNED                   3
#define POS_SLEEPING                  4
#define POS_RESTING                   5
#define POS_SITTING                   6
#define POS_FIGHTING                  7
#define POS_STANDING                  8

/*
 * ACT bits for players.
 */
#define PLR_IS_NPC              (A)             /* Don't EVER set.      */
#define PLR_BOUGHT_PET          (B)

/* RT auto flags */
#define PLR_AUTOASSIST          (C)
#define PLR_AUTOEXIT            (D)
#define PLR_AUTOLOOT            (E)
#define PLR_AUTOSAC             (F)
#define PLR_AUTOGOLD            (G)
#define PLR_AUTOSPLIT           (H)
/* 5 bits reserved, I-M */

/* RT personal flags */
#define PLR_HOLYLIGHT           (N)
#define PLR_WIZINVIS            (O)
#define PLR_CANLOOT             (P)
#define PLR_NOSUMMON            (Q)
#define PLR_NOFOLLOW            (R)
#define PLR_COLOR               (S)
/* Flag for ConsoleChar - Win32 - Zane */
#define PLR_CONSOLE             (aa)

#define PLR_AFK               (bb)
#define PLR_CAN_PROG            (cc)
#define PLR_CAN_EDIT            (dd)
#define PLR_NO_ANNOUNCE         (ee)
/* 4 bits reserved, S-V */

/* penalty flags */
#define PLR_LOG                 (W)
#define PLR_DENY                (X)
#define PLR_FREEZE              (Y)
#define PLR_THIEF               (Z)
#define PLR_KILLER              (aa)

/* RT comm flags -- may be used on both mobs and chars */
#define COMM_QUIET              (A)
#define COMM_DEAF               (B)
#define COMM_NOWIZ              (C)
#define COMM_NOAUCTION          (D)
#define COMM_NOGOSSIP           (E)
#define COMM_NOQUESTION         (F)
#define COMM_NO_OOC             (G)
#define COMM_NOINFO             (H)
#define COMM_NOCLAN             (I)
#define COMM_SNOOP_CLAN           (J)

/* display flags */
#define COMM_COMPACT            (L)
#define COMM_BRIEF              (M)
#define COMM_PROMPT             (N)
#define COMM_COMBINE            (O)
#define COMM_TELNET_GA          (P)
/* 3 flags reserved, Q-S */

/* Console Visible flag for Win32 - Zane */
#define VIS_CONSOLE                             (X)

/* penalties */
#define COMM_NOEMOTE            (T)
#define COMM_NOSHOUT            (U)
#define COMM_NOTELL             (V)
#define COMM_NOCHANNELS         (W)

/*
 * Liquids.
 */
#define LIQ_WATER        0
#define LIQ_MAX         16

/*
 * 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

/*
 *  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

/*
 * Object defined in limbo.are
 * Used in save.c to load objects that don't exist.
 */
#define OBJ_VNUM_DUMMY  1

#define MAX_DIR 6
#define NO_FLAG -99     /* Must not be used in flags or stats. */

/* You can define or not define TRACK_THOUGH_DOORS, above, depending on
   whether or not you want track to find paths which lead through closed
   or hidden doors.
*/

#define TRACK_THROUGH_DOORS
/* #define TRACK_IS_SKILL */
#undef TRACK_IS_SKILL

#define TRACK_NO_PATH          -1
#define TRACK_ALREADY_THERE    -2
#define TRACK_ERROR            -3

/*
 * Area flags.
 */
#define         AREA_NONE       0
#define         AREA_CHANGED    1       /* Area has been modified. */
#define         AREA_ADDED      2       /* Area has been added to. */
#define         AREA_LOADING    4       /* Used for counting in db.c */

/* Begin other config options.
   A large amount of thes options are turned off to start with.
   Next to each one is a brief description of what changes when
   the option is enabled or disabled.  When one of these options
   is changed, it is usually best to recompile all the object files
   and not just the ones affected.   - Kyle 
 */

/*
#define DISABLE_MESSAGE_QUEUEING
 */
/* This disables the add2queue and add2tell functions.
   If you enounter crashes after a certain amount of tells have been
   told, enable this option.
 */

/*
#define REQUIRE_EDIT_PERMISSION
 */
/* This actives a command called "setedit" and makes it so all players
   not at MAX_LEVEL cannot use the edit command unless an IMP uses setedit
   on them first.  Use this option if you don't want unauthorized building going on.
 */

/*
#define REQUIRE_MUDPROG_PERMISSION
 */
/* Same as REQUIRE_EDIT_PERMISSION, but only for MudProgs.  This way, only
   approved players can create mprogs.  This is useful to prevent crashes and 
   abuse of mprogs by some uneducated or beginning imms.  The IMP command is
   "setprog".
 */

/*
#define HEAVY_DEBUG
 */
/* This option uses a HUGE amount of disk access, so it will probably lag your mud
   unless you have extremely fast disk access time.  Enabling this causes the mud to
   record what it does before it does it in certain critical functions, namely interpret()
   and the XXXX_update functions.  If you do not have a debugger or your debugger is not
   producing usable results then try enabling this.  It will create a ####.last file in the
   log directory, where #### is the number of the current log file.  It is a small file
   and will be only 3 lines long at all times.  However, it will be updated over 30 times
   per second.  When the mud crashes, check the most recent ####.last file and it will tell
   you what the mud was doing at the time of the crash.  This alternative to log all will
   not spam the log files like log all, remains set over crashes, and will tell you if the
   mud crashes doing something besides interpreting a command.  -Kyle
 */

#define ANNOUNCE_CONNECTIONS
/* Defining this sets the option to announce the entry into the mud of players via the
   info channel.  Wizinvis imms are not announced. */

#ifdef ANNOUNCE_CONNECTIONS
#define IMMS_CAN_HIDE
/* With this set, immediately after entering their password and while viweing the imotd,
   any immortal can type "hidden" to prevent themselves from being announced.
 */
#endif

/*
#define NO_MOB_NAMES
 */
/* With this defined, characters may not name themselves after mobs.
   note: this does not prevent a builder from naming a mob after a player
   and making that character unusable.
 */

/*
#define USE_MORGUE
#define ROOM_VNUM_MORGUE 3001
 */
/* Set this to send all player corpses to the morgue when a player dies.  Room
   3001 is the temple, so you should probably create your own morgue and set 
   ROOM_VNUM_MORGUE to its vnum.
 */

/*
#define DAMAGE_BY_AMOUNT
 */
/* The mud defaults to showing damage messages based on the percentage of damage done.
   If you with to have the mud show damage messages based on the amount rather than
   the percentage done, then define this.
 */

/*
#define SHOW_DAMAGE_TO_CHARS
 */
/* With this defined, characters see exactly how much damage they do to a mob.
   From experience, most players really like this feature.  However, many mud
   administrators do not like it.  It's your choice.
 */

#define NO_OLC_WEATHER
/* This option disables weather while a character is in string_append mode.
 */


/* This goes at the end :) */
#endif