ackfuss-4.3.2/area/boards/
ackfuss-4.3.2/npcs/a/
ackfuss-4.3.2/npcs/b/
ackfuss-4.3.2/npcs/c/
ackfuss-4.3.2/npcs/d/
ackfuss-4.3.2/npcs/e/
ackfuss-4.3.2/npcs/f/
ackfuss-4.3.2/npcs/h/
ackfuss-4.3.2/npcs/i/
ackfuss-4.3.2/npcs/k/
ackfuss-4.3.2/npcs/l/
ackfuss-4.3.2/npcs/n/
ackfuss-4.3.2/npcs/o/
ackfuss-4.3.2/npcs/p/
ackfuss-4.3.2/npcs/r/
ackfuss-4.3.2/npcs/s/
ackfuss-4.3.2/npcs/w/
ackfuss-4.3.2/player/c/
ackfuss-4.3.2/reports/
/***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
 *                                                                         *
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
 *  Chastain, Michael Quan, and Mitchell Tse.                              *
 *                                                                         *
 *  Ack 2.2 improvements copyright (C) 1994 by Stephen Dooley              *
 *                                                                         *
 *  In order to use any part of this Merc Diku Mud, you must comply with   *
 *  both the original Diku license in 'license.doc' as well the Merc       *
 *  license in 'license.txt'.  In particular, you may not remove either of *
 *  these copyright notices.                                               *
 *                                                                         *
 *       _/          _/_/_/     _/    _/     _/    ACK! MUD is modified    *
 *      _/_/        _/          _/  _/       _/    Merc2.0/2.1/2.2 code    *
 *     _/  _/      _/           _/_/         _/    (c)Stephen Zepp 1998    *
 *    _/_/_/_/      _/          _/  _/             Version #: 4.3          *
 *   _/      _/      _/_/_/     _/    _/     _/                            *
 *                                                                         *
 *                                                                         *
 *  Much time and thought has gone into this software and you are          *
 *  benefitting.  We hope that you share your changes too.  What goes      *
 *  around, comes around.                                                  *
 ***************************************************************************/

#define DEC_CONFIG_H		1

/*
 *  Your mud info here :) Zen
 */

#define mudnamecolor  "@@lYour Mud Name@@N"
#define mudnamenocolor  "Your Mud name"
#define sacgodname  "Cyberlich"
#define goodgodname  "Freyja"
#define neutralgodname  "Zenithar"
#define evilgodname  "Oderus"
#define UPGRADE_REVISION 15
/*
 * String and memory management parameters.
 */
#define MAX_KEY_HASH             2048
#define MAX_STRING_LENGTH        8192
#define MSL			MAX_STRING_LENGTH
#define MAX_INPUT_LENGTH          640
#define MAX_AREAS                 200
#define MAX_VNUM 32767

#define BOOT_DB_ABORT_THRESHOLD			  25
#define RUNNING_ABORT_THRESHOLD			  10
#define ALARM_FREQUENCY               20

/*
 * Game parameters.
 * Increase the max'es if you add more of something.
 * Adjust the pulse numbers to suit yourself.
 */

#define MAX_CLAN_EQ		     6   /* Number of clan eq items */
#define MAX_color		    15   /* eg look, prompt, shout */
#define MAX_ANSI		    28   /* eg red, black, etc (was 11) */
#define MAX_ALIASES		     6
#define MAX_IGNORES		     3
#define MAX_RACE                     16
#define MAX_CLAN                     9 /* number of clans */
#define EXP_LEVEL                 1000 /* exp per level */
#define MAX_SKILL                  300
#define MAX_CLASS                    5
#define MAX_LEVEL                   85
#define MOUNT_COST                  10
#define LEVEL_HERO                 (MAX_LEVEL - 4)
#define LEVEL_IMMORTAL             (MAX_LEVEL - 3)
#define MAX_VAMP_LEVEL              20
#define MAX_WOLF_LEVEL		    20
#define ADVANCE_VAMP                16
#define ADVANCE_ADEPT               32
#define ADVANCE_WOLF		    64
#define MAX_FAMILY                   5
#define MAX_TRIBE		     5
#define MAX_SUPER                    4
#define MAX_STANCE		13

#define MAX_NUM_IMMS    5

                     /*
                      * total number of supernatural types in the game  
                      */
#define QUORUM_NUMBER			4
                     /*
                      * number of members to be a quorum for a council 
                      */

#define MAX_TRADE        5

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


#define AREA_PAYAREA  	    1
#define AREA_TELEPORT 	    2
#define AREA_BUILDING 	    4
#define AREA_NOSHOW	    8 /* Show area name on 'areas' command? */
#define AREA_NO_ROOM_AFF    16

/*
 * Types of attacks.
 * Must be non-overlapping with spell/skill types,
 * but may be arbitrary beyond that.
 */
#define TYPE_MARTIAL		     -3  /* for martial arts */
#define TYPE_UNDEFINED               -2
#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

/* Used as flags in skill_table */

#define MORTAL 1
#define REMORT 2
#define ADEPT  3

#define NORM   1
#define VAMP   2
#define WOLF   3

/*
 * Quest mob personalities
 */

#define QUEST_RUDE 	1
#define QUEST_NICE	2
#define QUEST_WIMPY	4
#define QUEST_COOL	8
#define QUEST_MEAN	16


#define C_TYPE_MISC     0
#define C_TYPE_COMM     1
#define C_TYPE_CONFIG   2
#define C_TYPE_INFO     3
#define C_TYPE_ACTION   4
#define C_TYPE_OBJECT   5
#define C_TYPE_IMC      6
#define C_TYPE_IMM      7

#define C_SHOW_NEVER    -1
#define C_SHOW_ALWAYS     0
#define C_SHOW_SKILL      1




/*
 * Well known mob virtual numbers.
 * Defined in #MOBILES.
 */
#define MOB_VNUM_CITYGUARD         3060
#define MOB_VNUM_VAMPIRE           3404
#define MOB_VNUM_DOGGY             99
#define MOB_VNUM_ZOMBIE 	  11004
#define MOB_VNUM_STALKER	   32
#define MOB_VNUM_WATERELEM        1028
#define MOB_VNUM_SKELETON         1028
#define MOB_VNUM_FIREELEM         1028
#define MOB_VNUM_TRAINER		1042
#define MOB_VNUM_EARTHELEM		1028
#define MOB_VNUM_IRON_GOLEM		1029
#define MOB_VNUM_SOUL_THIEF		1030
#define MOB_VNUM_HOLY_AVENGER		1031
#define MOB_VNUM_PEGASUS		1037
#define MOB_VNUM_NIGHTMARE		1038
#define MOB_VNUM_ELEM_BEAST		1039
#define MOB_VNUM_INT_DEVOURER		1040
#define MOB_VNUM_SHADOW_HOUND		1041


#define MOB_VNUM_DIAMOND_GOLEM	1032
#define MOB_VNUM_COMBAT_ELEMENTAL 1036 /* this needs to be a new mob ZENFIX */

/*
 * vnums for quest items.
 * One of these will be picked at random and placed onto a random mob
 * (one the player has a chance of killing!).
 * Reserve vnums 40-60 for this.
 * We'll define a range of possible vnums here - easier to expand (:
 */

#define OBJ_VNUM_QUEST_MIN		66
#define OBJ_VNUM_QUEST_MAX		72


#define PULSE_PER_SECOND             8
#define PULSE_VIOLENCE            (  2 * PULSE_PER_SECOND )
#define PULSE_MOBILE              (  4 * PULSE_PER_SECOND )
#define PULSE_OBJFUN		  (  4 * PULSE_PER_SECOND )
#define PULSE_TICK                ( 60 * PULSE_PER_SECOND )
#define PULSE_MESSAGE		  ( 12 * PULSE_PER_SECOND )
#define PULSE_ROOMS		  ( 30 * PULSE_PER_SECOND )
#define PULSE_AREA                ( 80 * PULSE_PER_SECOND )
#define PULSE_AUCTION		  ( 30 * PULSE_PER_SECOND )
#define PULSE_RAUCTION            ( 30 * PULSE_PER_SECOND )
#define PULSE_MAUCTION            ( 30 * PULSE_PER_SECOND )


#define VAMPIRE_RECALL		 9001
#define LIQUID_BLOOD		 13
#define WOLF_RECALL          3001

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

#define OBJ_VNUM_MUSHROOM            20
#define OBJ_VNUM_LIGHT_BALL          21
#define OBJ_VNUM_SPRING              19

#define OBJ_VNUM_BOARD               23
#define OBJ_VNUM_FOOD		     30
#define OBJ_VNUM_FIREBLADE	     31
#define OBJ_VNUM_TOKEN		     32  /* For old chars */
#define OBJ_VNUM_WINDOW		     33
#define OBJ_VNUM_PORTAL		     34
#define OBJ_VNUM_BEACON		     35

#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_SOUL_POTION       37
#define OBJ_VNUM_CAPTURED_SOUL     38
#define OBJ_VNUM_CONFLAGRATION	   1036  /* need a staff here  ZENFIX */
#define OBJ_VNUM_MINO_PASS         10021
/*
 * 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
#define ROOM_VNUM_DONATION         3206
#define ROOM_VNUM_MORGUE           3300
#define ROOM_VNUM_MORIBUND         3301
#define ROOM_VNUM_BUILDER	   1019  /* Bulder-flagged players only */
#define ROOM_VNUM_BODIES	   30 /* for morphed players */
#define ROOM_VNUM_CLAN		   1022  /* for leaders only */
#define ROOM_VNUM_DM_RECALL       3001
#define ROOM_VNUM_ETHEREAL_PLANE  3850
#define ROOM_VNUM_INT_HEAL		3871
#define ROOM_VNUM_MID_BOTTOM		3001
#define ROOM_VNUM_MID_TOP		3200
#define ROOM_VNUM_JAIL                  2
#define ROOM_VNUM_ARMOR_DONATE    3018
#define ROOM_VNUM_WEAPON_DONATE   3019
#define ROOM_VNUM_MISC_DONATE     3017



#define STANCE_WARRIOR		0
#define STANCE_CASTER		1
#define STANCE_AMBUSH		2
#define STANCE_AC_BEST		3
#define STANCE_HR_BEST		4
#define STANCE_DR_BEST		5
#define STANCE_AC_WORST		6
#define STANCE_HR_WORST		7
#define STANCE_DR_WORST		8
#define STANCE_SUPER_FIGHTER	9
#define STANCE_SUPER_SPEED	10
#define STANCE_WIZARD         11
#define STANCE_MAGI          12




#define C_SHOW_NEVER    -1
#define C_SHOW_ALWAYS     0
#define C_SHOW_SKILL      1

#define SUPER_NONE			0
#define SUPER_VAMP			1
#define SUPER_WOLF			2
#define SUPER_BLESSED			3

/* defines for enchant.c  */
#define ENCHANT_EXTRA_FLAGS	-1
#define ENCHANT_APPLY_FLAGS	-2
#define ENCHANT_OBJFUNS		-3

#define RACE_MOD_NONE		BIT_0
#define RACE_MOD_FAST_HEAL	BIT_1
#define RACE_MOD_SLOW_HEAL	BIT_2
#define RACE_MOD_STRONG_MAGIC	BIT_3
#define RACE_MOD_WEAK_MAGIC	BIT_4
#define RACE_MOD_NO_MAGIC	BIT_5
#define RACE_MOD_IMMUNE_POISON  BIT_6
#define RACE_MOD_RESIST_SPELL	BIT_7
#define RACE_MOD_WOODLAND	BIT_8
#define RACE_MOD_DARKNESS	BIT_9
#define RACE_MOD_HUGE		BIT_10
#define RACE_MOD_LARGE		BIT_11
#define RACE_MOD_TINY		BIT_12
#define RACE_MOD_SMALL		BIT_13
#define RACE_MOD_TAIL		BIT_14
#define RACE_MOD_TOUGH_SKIN   BIT_15
#define RACE_MOD_STONE_SKIN   BIT_16
#define RACE_MOD_IRON_SKIN    BIT_17

/*
 *   Spell Damage Types
 */


/* Magic Shield types
	-Damane 4/27/96 */
#define SHIELD_NONE	0
#define FLAME_SHIELD	1
#define SHOCK_SHIELD	2
#define SHADOW_SHIELD	3
#define ICE_SHIELD	4
#define PSI_SHIELD	5


/* These are for skill_table lookup funcs... to save writing 2 functions */
#define RETURN_BEST_LEVEL	1
#define RETURN_BEST_CLASS	2

/*
 * God Levels
 */
#define L_GOD           MAX_LEVEL
#define L_SUP           L_GOD - 1
#define L_DEI           L_SUP - 1
#define L_ANG           L_DEI - 1
#define L_HER           L_ANG - 1

#define CLAN_ONLY	 -1
#define BOSS_ONLY	 -2
#define VAMP_ONLY	 -3
#define WOLF_ONLY	 -4

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

#define MOON_DOWN	0
#define MOON_RISE	1
#define MOON_LOW	2
#define MOON_PEAK	3
#define MOON_FALL	4
#define MOON_SET	5


#define MOON_NEW	0
#define MOON_WAX_CRE	1
#define MOON_WAX_HALF	2
#define MOON_WAX_GIB	3
#define MOON_FULL	4
#define MOON_WAN_GIB	5
#define MOON_WAN_HALF	6
#define MOON_WAN_CRE	7

/*
 * Connected state for a channel.
 */

/* These values referenced by users command, BTW */

#define CON_PLAYING                      0
#define CON_GET_NAME                     -1
                  /*
                   * All non connected 
                   */
#define CON_GET_OLD_PASSWORD             -2
                  /*
                   * states changed to  
                   */
#define CON_CONFIRM_NEW_NAME             -3
                  /*
                   * negative so that   
                   */
#define CON_GET_NEW_PASSWORD             -4
                  /*
                   * Hotboot can shut out 
                   */
#define CON_CONFIRM_NEW_PASSWORD         -5
                  /*
                   * All nonplaying chars 
                   */
#define CON_GET_NEW_SEX                  -6
                  /*
                   * ---Flar 
                   */
#define CON_GET_NEW_CLASS                -7
#define CON_GET_RACE                     -9
#define CON_READ_MOTD                   -10
#define CON_GET_STATS                   -11
#define CON_FINISHED			-12
#define CON_MENU		        -13
#define CON_COPYOVER_RECOVER		-14
                  /*
                   * For Hotreboot 
                   */
#define CON_QUITTING			-15
#define CON_RECONNECTING                -16
#define CON_SETTING_STATS		1

/* values used to check a new player has selected all options.... */
#define CHECK_RACE			  1
#define CHECK_CLASS			  2
#define CHECK_SEX			  4
#define CHECK_STATS			  8

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


/*
 * Room flags.
 * Used in #ROOMS.
 */
#define ROOM_DARK                     1
#define ROOM_REGEN                    2   /* increased regen in this room */
#define ROOM_NO_MOB                   4
#define ROOM_INDOORS                  8
#define ROOM_NO_MAGIC                16
#define ROOM_HOT                     32   /* players lose hp each tick   */
#define ROOM_COLD                    64   /* players lose hp each tick   */
#define ROOM_PK                     128   /* players may freely pk here  */
#define ROOM_QUIET                  256   /* room is quiet               */
#define ROOM_PRIVATE                512
#define ROOM_SAFE                  1024
#define ROOM_SOLITARY              2048
#define ROOM_PET_SHOP              4096
#define ROOM_NO_RECALL             8192
#define ROOM_NO_TELEPORT          16384
#define ROOM_HUNT_MARK	          32768   /* Dont ever set! */
#define ROOM_NOBLOODWALK	  65536
#define ROOM_NO_PORTAL		 131072
#define ROOM_NO_REPOP		BIT_19


/*
 * 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_CLIMB		      8
#define EX_IMMORTAL		     16
#define EX_PICKPROOF                 32
#define EX_SMASHPROOF		     64
#define EX_PASSPROOF		    128
#define EX_NODETECT		    256



/*
 * Sector types.
 * Used in #ROOMS.
 */

#define SECT_NULL                     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_RECALL_OK                8
#define SECT_AIR                      9
#define SECT_DESERT                  10
#define SECT_INSIDE                  11
#if 0
#define SECT_HERE                    12
#define SECT_UNSEEN                  13
#define SECT_BLOCKED                 14
#define SECT_TOP                     15
#endif

#define SECT_MAX                     12



/*
 * Equpiment wear locations.
 * Used in #RESETS.
 */
#define WEAR_NONE               -1
#define WEAR_LIGHT              0
#define WEAR_HALO               1
#define WEAR_AURA               2
#define WEAR_HORNS              3
#define WEAR_HEAD               4
#define WEAR_FACE               5
#define WEAR_BEAK               6
#define WEAR_EAR_L              7
#define WEAR_EAR_R              8
#define WEAR_NECK_1             9
#define WEAR_NECK_2             10
#define WEAR_WINGS              11
#define WEAR_SHOULDERS          12
#define WEAR_ARMS               13
#define WEAR_WRIST_L            14
#define WEAR_WRIST_R            15
#define WEAR_HANDS              16
#define WEAR_FINGER_L           17
#define WEAR_FINGER_R           18
#define WEAR_CLAWS              19
#define WEAR_HOLD_HAND_L        20
#define WEAR_HOLD_HAND_R        21
#define WEAR_ABOUT              22
#define WEAR_WAIST              23
#define WEAR_BODY               24
#define WEAR_TAIL               25
#define WEAR_LEGS               26
#define WEAR_FEET               27
#define WEAR_HOOVES             28

#define MAX_WEAR                     29


/***************************************************************************
 *                                                                         *
 *                   VALUES OF INTEREST TO AREA BUILDERS                   *
 *                   (End of this section ... stop here)                   *
 *                                                                         *
 ***************************************************************************/

/*
 * 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_FIGHTING                  6
#define POS_STANDING                  7
#define POS_WRITING                   8
#define POS_BUILDING                  9
#define POS_RIDING                   10


/*
 *  Configuration Bits for players
 */

#define CONFIG_AUTOEXIT         BIT_1
#define CONFIG_AUTOLOOT         BIT_2
#define CONFIG_AUTOSAC          BIT_3
#define CONFIG_BLANK            BIT_4
#define CONFIG_BRIEF            BIT_5
#define CONFIG_COMBINE          BIT_6
#define CONFIG_PROMPT           BIT_7
#define CONFIG_TELNET_GA        BIT_8
#define CONFIG_COLOR            BIT_9
#define CONFIG_AUTOSPLIT        BIT_10
#define CONFIG_FULL_ANSI        BIT_11
#define CONFIG_MAPPER           BIT_12
#define CONFIG_JUSTIFY          BIT_13


/*
 * ACT bits for players.
 */
#define PLR_IS_NPC                    1   /* Don't EVER set.      */
#define PLR_BOUGHT_PET                2
#define PLR_CLAN_LEADER               4   /* Clan Leader!! */
/* Available 
#define PLR_AUTOEXIT                 BIT_4   
#define PLR_AUTOLOOT                 BIT_5
#define PLR_AUTOSAC                  BIT_6
#define PLR_BLANK                    BIT_7
#define PLR_BRIEF                    BIT_8
*/

#define PLR_NO_PRAY                 256
/* Available
#define PLR_COMBINE                 BIT_10
#define PLR_PROMPT                 BIT_11
#define PLR_TELNET_GA              BIT_12
*/
#define PLR_HOLYLIGHT              4096
#define PLR_WIZINVIS               8192
#define PLR_BUILDER               16384   /* Is able to use the OLC */
#define PLR_SILENCE               32768

#define PLR_NO_EMOTE              65536
/* avaiable
#define PLR_color		 BIT_18	
*/
#define PLR_NO_TELL              262144
#define PLR_LOG                  524288
#define PLR_DENY                1048576
#define PLR_FREEZE              2097152
#define PLR_THIEF               4194304
#define PLR_KILLER              8388608
#define PLR_NOSUMMON           16777216
#define PLR_NOVISIT            33554432
/* available
#define PLR_QUESTING	        BIT_27
#define PLR_AUTOSPLIT         BIT_28
#define PLR_AUTOASSIST        BIT_29
*/

#define PLR_NOBLOOD	       536870912

#define PLR_INCOG			1073741824

/*
 * Obsolete bits.
 */
#if 0
#define PLR_AUCTION                   4   /* Obsolete     */
#define PLR_CHAT                    256   /* Obsolete     */
#define PLR_NO_SHOUT             131072   /* Obsolete     */
#endif

/* 
 * Player flags
 */
#define PFLAG_PKOK		1
#define PFLAG_AFK			2
#define PFLAG_AMBAS		4
#define PFLAG_VAMP		8
#define PFLAG_CLAN_DIPLOMAT	16
#define PFLAG_CLAN_BOSS		32
#define PFLAG_CLAN_TREASURER	64
#define PFLAG_CLAN_ARMOURER	128
#define PFLAG_CLAN_LEADER	256
#define PFLAG_SUPER_COUNCIL	512
#define PFLAG_WEREWOLF		1024
#define PFLAG_RAGED		2048
#define PFLAG_SHIFTED		4096
#define PFLAG_RULER		BIT_14
#define PFLAG_BLIND_PLAYER	BIT_15
#define PFLAG_TESTER  BIT_16


/*
 * Channel bits.
 */
#define CHANNEL_AUCTION               1
#define CHANNEL_GOSSIP                2
#define CHANNEL_MUSIC                 4
#define CHANNEL_IMMTALK               8
#define CHANNEL_NEWBIE               16
#define CHANNEL_QUESTION             32
#define CHANNEL_SHOUT                64
#define CHANNEL_YELL                128
#define CHANNEL_FLAME               256
#define CHANNEL_ZZZ                 512
#define CHANNEL_RACE               1024
#define CHANNEL_CLAN               2048
#define CHANNEL_NOTIFY             4096
#define CHANNEL_INFO               8192
#define CHANNEL_LOG		  16384
#define CHANNEL_CREATOR		  32768
#define CHANNEL_ALLCLAN		  65536
#define CHANNEL_ALLRACE		 131072
#define CHANNEL_HERMIT		 262144  /* Turns off ALL channels */
#define CHANNEL_BEEP		 524288
#define CHANNEL_FAMILY		1048576
#define CHANNEL_DIPLOMAT	2097152
#define CHANNEL_CRUSADE		4194304
#define CHANNEL_REMORTTALK	8388608
#define CHANNEL_HOWL           BIT_25
#define CHANNEL_ADEPT	        BIT_26
/* #define CHANNEL_MAUCTION        67108864  */
#define CHANNEL_OOC            BIT_27
#define CHANNEL_QUEST          BIT_28
#define CHANNEL_LANG	        BIT_29
#define CHANNEL_GAME		BIT_30

  /*
   * NOTE 32 is the last allowable channel ZEN 
   */

/* Monitor channels - for imms to select what mud-based info they receive */
#define MONITOR_CONNECT		      1
#define MONITOR_AREA_UPDATE	      2
#define MONITOR_AREA_BUGS	      4
#define MONITOR_AREA_SAVING	      8
#define MONITOR_GEN_IMM		     16
#define MONITOR_GEN_MORT	     32
#define MONITOR_COMBAT		     64
#define MONITOR_HUNTING		    128
#define MONITOR_BUILD		    256
#define MONITOR_CLAN		    512
#define MONITOR_OBJ		   1024
#define MONITOR_MOB		   2048
#define MONITOR_ROOM		   4096
#define MONITOR_MAGIC		   8192
#define MONITOR_BAD		  16384
#define MONITOR_DEBUG   BIT_16
#define MONITOR_IMC     BIT_17
#define MONITOR_SYSTEM  BIT_18
/*
 * Hunt flags for mobs
 */
#define HUNT_WORLD	0x00000001  /* Search the whole world  */
#define HUNT_OPENDOOR	0x00000002  /* Can open obstructung doors */
#define HUNT_UNLOCKDOOR	0x00000004  /* Can unlock obstructing doors  */
#define HUNT_PICKDOOR	0x00000008  /* Can pick obstructing doors */
#define HUNT_INFORM	0x00000010  /* Yells while hunting     */
#define HUNT_CR		0x00000020  /* Is preforming a CR      */
#define HUNT_MERC	0x00000040  /* Is gonna assassinate someone  */
#define HUNT_ALL	0x0000001E  /* can hunt through anything    */

#define ERROR_PROG        -1
#define IN_FILE_PROG       0
#define ACT_PROG           1
#define SPEECH_PROG        2
#define RAND_PROG          4
#define FIGHT_PROG         8
#define DEATH_PROG        16
#define HITPRCNT_PROG     32
#define ENTRY_PROG        64
#define GREET_PROG       128
#define ALL_GREET_PROG   256
#define GIVE_PROG        512
#define BRIBE_PROG      1024

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


/********************* Define Flags for hunting *************************/
#define ACT_HUNT_CHAR		1  /* Hunting a character     */
#define ACT_HUNT_OBJ		2  /* Hunting an object       */
#define ACT_HUNT_INFORM		4  /* Mob will gossip when hunting  */
#define ACT_HUNT_CR		8  /* Mob is doing a corpse retrival   */
#define ACT_HUNT_MOVE	       16   /* Just walking somewhere      */

#define NO_VNUM		       -1   /* For ch->move_to thingy      */

/************************************************************************/

/** Define what is calling the trigger handler for objects ******/
#define TRIGGER_OPEN		1
              /*
               * Opening a container      
               */
#define TRIGGER_CLOSE		2
              /*
               * Closing a container   
               */
#define TRIGGER_EAT		3
              /*
               * Eating some food      
               */
#define TRIGGER_C_DRINK		4
              /*
               * Drinking from container  
               */
#define TRIGGER_F_DRINK		5
              /*
               * Drinking from fountain   
               */
#define TRIGGER_WEAR		6
              /*
               * Wearing an object     
               */
#define TRIGGER_GET		7
              /*
               * Picking up an object  
               */
#define TRIGGER_DROP		8
              /*
               * Dropping an object    
               */
#define TRIGGER_EXAMINE		9
              /*
               * Examining an object   
               */
/** Define what actions the triggered object can do *************/
#define ACTION_TRANSPORT	1
              /*
               * Transports victim to room   
               */
#define ACTION_RESTORE		2
              /*
               * Restores victim    
               */
#define ACTION_SLAY		3
              /*
               * Kills victim    
               */
#define ACTION_TRANSFORM	4
              /*
               * Loads mob(s) in its place   
               */
/****************************************************************/

/* BitVector flags for room-affect spells.  These are used in the
   ROOM_AFFECT_DATA structure, and passes to the major handling
   functions.  They MUST be used whenever a room-affect spell is
   being cast (from within code) */

#define ROOM_BV_NONE		0
#define ROOM_BV_SILENCE		1  /* Like silence room flag  */
#define ROOM_BV_SAFE		2  /* Like safe room flag     */
#define ROOM_BV_ENCAPS		4  /* Magically blocks exits   */
#define ROOM_BV_SHADE		8  /* Room is darkened      */
#define ROOM_BV_HEAL_REGEN    16 /* room heals hits quicker     */
#define ROOM_BV_HEAL_STEAL    32 /* room takes hits instead of giving */
#define ROOM_BV_MANA_REGEN    64 /* room heals mana quicker     */
#define ROOM_BV_MANA_STEAL    128   /* room saps mana              */
#define ROOM_BV_FIRE_RUNE     256   /* room does fire damage       */
#define ROOM_BV_FIRE_TRAP     512   /* room is fire trapped        */
#define ROOM_BV_DAMAGE_TRAP   1024  /* room is physical damage trapped */
#define ROOM_BV_SHOCK_RUNE    2048  /* room is shock runed         */
#define ROOM_BV_SHOCK_TRAP    4096  /* room is shock trapped       */
#define ROOM_BV_SPELL_ON_ENTER 8192 /* room spell cast on entrance */
#define ROOM_BV_SPELL_ALWAYS   16384   /* room casts spell continuously */
#define ROOM_BV_HOLD           32768   /* room lets you in, but not out..recall works */
#define ROOM_BV_POISON_RUNE    65536   /* room gives poison to entering ch */
#define ROOM_BV_SOUL_NET	131072   /* makes soul instead of corpse */





/*
 * ACT bits for mobs.
 * Used in #MOBILES.
 */
#define ACT_IS_NPC                    1   /* Auto set for mobs    */
#define ACT_SENTINEL                  2   /* Stays in one room    */
#define ACT_SCAVENGER                 4   /* Picks up objects     */
#define ACT_REMEMBER                  8   /* remembers target     */
#define ACT_NO_FLEE                  16   /* can't flee from mob  */
#define ACT_AGGRESSIVE               32   /* Attacks PC's         */
#define ACT_STAY_AREA                64   /* Won't leave area     */
#define ACT_WIMPY                   128   /* Flees when hurt      */
#define ACT_PET                     256   /* Auto set for pets    */
#define ACT_TRAIN                   512   /* Can train PC's       */
#define ACT_PRACTICE               1024   /* Can practice PC's    */
#define ACT_MERCENARY              2048   /* Is a mercenary       */
#define ACT_HEAL                   4096   /* Sells spells         */
#define ACT_ADAPT                  8192   /* Adapts weapons       */
#define ACT_UNDEAD                16384   /* Mob is undead  */
#define ACT_BANKER                32768   /* Is a *B*anker :P     */
#define ACT_NO_BODY               65536   /* no body for damage   */
#define ACT_HUNTER		 131072  /* hunts attackers      */
#define ACT_NOMIND		 262144  /* Psi attack no-no     */
#define ACT_POSTMAN		 524288  /* Postmaster     */
#define ACT_REWIELD	 	1048576  /* Uses better weapons  */
#define ACT_RE_EQUIP	 	2097152  /* Uses better equipment */
#define ACT_INTELLIGENT		4194304  /* For shitkicking mobs */
#define ACT_VAMPIRE             8388608   /* Vampire mob    */
#define ACT_BREEDER          16777216  /* Mob can breed        */
#define ACT_SOLO   	       33554432   /* Mob is buffed for solo combat */
#define ACT_WEREWOLF           67108864         /* Werewolf mob         */ /* doesn't do anything in ack4.0 ZENFIX */
#define ACT_MOUNT             134217728   /* Mountable MOB */
#define ACT_NOBLOOD		BIT_29

/* build bits for OLC -S- */
#define ACT_BUILD_NOWT                0   /* not doing anything   */
#define ACT_BUILD_REDIT               1   /* editing rooms        */
#define ACT_BUILD_OEDIT               2   /* editing objects      */
#define ACT_BUILD_MEDIT               3   /* editing mobiles      */

#define NO_USE			   -999  /* this table entry can */
                  /*
                   * NOT be used, except  
                   */
                  /*
                   * by a Creator      
                   */


/*
 * New bits to determine what skills a mob can do in combat -S-
 */

#define MOB_NONE		      	     1
#define MOB_SECOND			     2
#define MOB_THIRD			     4
#define MOB_FOURTH			     8
#define MOB_PUNCH			    16
#define MOB_HEADBUTT			    32
#define MOB_KNEE			    64
#define MOB_DISARM			   128
#define MOB_TRIP			   256
#define MOB_NODISARM			   512
#define MOB_NOTRIP			  1024
#define MOB_DODGE			  2048
#define MOB_PARRY			  4096
#define MOB_MARTIAL			  8192
#define MOB_ENHANCED			 16384
#define MOB_DUALWIELD			 32768
#define MOB_DIRT			 65536
#define MOB_FIFTH			131072
#define MOB_SIXTH			262144
#define MOB_CHARGE			524288

/*
 * New bits to determine what spells a mob will cast in combat -S-
 * These are for offensive spells.
 * Remember spec_funs may still cast as well! - but spells cast 
 *  this way WILL reduce the mob's mana <g>
 */

#define CAST_NONE			     1
#define CAST_MAGIC_MISSILE		     2
#define CAST_SHOCKING_GRASP		     4
#define CAST_BURNING_HANDS		     8
#define CAST_color_SPRAY		    16
#define CAST_FIREBALL			    32
#define CAST_HELLSPAWN			    64
#define CAST_ACID_BLAST			   128
#define CAST_CHAIN_LIGHTNING		   256
#define CAST_FLARE			  1024
#define CAST_FLAMESTRIKE		  2048
#define CAST_EARTHQUAKE			  4096
#define CAST_MIND_FLAIL			  8192
#define CAST_PLANERGY			 16384
#define CAST_PHOBIA			 32768
#define CAST_MIND_BOLT			 65536
#define CAST_STATIC			131072
#define CAST_EGO_WHIP			262144
#define CAST_BLOODY_TEARS		524288
#define CAST_MINDFLAME		       1048576
#define CAST_SUFFOCATE		       2097152
#define CAST_NERVE_FIRE		       4194304
#define CAST_LIGHTNING_BOLT	       8388608
#define CAST_HEAT_ARMOR			16777216
#define CAST_LAVA_BURST			33554432

/*
 * New bits to determine the defensive spells available to
 * mobs.  May be used in fights (cure light, heal, etc)
 *  will deduct mana from the mob when cast.
 */

#define DEF_NONE		1
#define DEF_CURE_LIGHT		2
#define DEF_CURE_SERIOUS	4
#define DEF_CURE_CRITIC		8
#define DEF_CURE_HEAL		16
#define DEF_SHIELD_FIRE		32
#define DEF_SHIELD_ICE		64
#define DEF_SHIELD_SHOCK	128

/*
 * Bits for 'affected_by'.
 * Used in #MOBILES.
 */
#define AFF_BLIND                     1
#define AFF_INVISIBLE                 2
#define AFF_DETECT_EVIL               4
#define AFF_DETECT_INVIS              8
#define AFF_DETECT_MAGIC             16
#define AFF_DETECT_HIDDEN            32
#define AFF_CLOAK_REFLECTION         64
#define AFF_SANCTUARY               128
#define AFF_FAERIE_FIRE             256
#define AFF_INFRARED                512
#define AFF_CURSE                  1024
#define AFF_CLOAK_FLAMING          2048
#define AFF_POISON                 4096
#define AFF_PROTECT                8192
#define AFF_CLOAK_ABSORPTION      16384
#define AFF_SNEAK                 32768
#define AFF_HIDE                  65536
#define AFF_SLEEP                131072
#define AFF_CHARM                262144
#define AFF_FLYING               524288
#define AFF_PASS_DOOR           1048576
#define AFF_ANTI_MAGIC          2097152   /* -S- no magic hurts ch */
#define AFF_BLASTED              BIT_23
/* available 
#define AFF_                     BIT_24
*/
#define AFF_CONFUSED           BIT_25
#define AFF_VAMP_HEALING       BIT_26  /* DO NOT USE IN OLC! */
#define AFF_HOLD			         BIT_27
#define AFF_PARALYSIS	         BIT_28
#define AFF_CLOAK_ADEPT		     BIT_29
#define AFF_CLOAK_REGEN		     BIT_30

/* VAMP_HEALING is used to show that a vamp is currently healing after death*/

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





/*
 * 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_BEACON                   6   /* for portals, etc */
#define ITEM_PORTAL		      7
#define ITEM_TREASURE                 8
#define ITEM_ARMOR                    9
#define ITEM_POTION                  10
#define ITEM_CLUTCH                  11   /* for clutch location only! */
#define ITEM_FURNITURE               12
#define ITEM_TRASH                   13
#define ITEM_TRIGGER		     14
#define ITEM_CONTAINER               15
#define ITEM_QUEST		     16
#define ITEM_DRINK_CON               17
#define ITEM_KEY                     18
#define ITEM_FOOD                    19
#define ITEM_MONEY                   20
#define ITEM_STAKE		     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_BOARD                   27
#define ITEM_SOUL				 28
#define ITEM_PIECE			 29
#define ITEM_SPELL_MATRIX		30
#define ITEM_ENCHANTMENT		31
#define ITEM_WRAPPED_PRESENT 32
/*
 * Extra flags.
 * Used in #OBJECTS.
 */
#define ITEM_GLOW				1
#define ITEM_HUM				2
#define ITEM_DARK				4
#define ITEM_NODISARM				4
#define ITEM_LOCK				8
#define ITEM_EVIL				16
#define ITEM_INVIS			32
#define ITEM_MAGIC			64
#define ITEM_NODROP			128
#define ITEM_BLESS			256
#define ITEM_ANTI_GOOD			512
#define ITEM_ANTI_EVIL			1024
#define ITEM_ANTI_NEUTRAL		2048
#define ITEM_NOREMOVE			4096
#define ITEM_INVENTORY			8192
#define ITEM_NOSAVE			16384 /* For "quest" items :) */
#define ITEM_CLAN_EQ		 	32768 /* only leaders and creators may load */
#define ITEM_TRIG_DESTROY	 	65536 /* Trigger object that destroy after use */
#define ITEM_NO_AUCTION			131072   /* Can't be auctioned */
#define ITEM_REMORT			262144   /* player must have a remort class of higher level than item level */
#define ITEM_ADEPT			524288
#define ITEM_RARE			1048576
#define ITEM_VAMP                       2097152 /* player must be a vampyre */
#define ITEM_NOLOOT			4194304
#define ITEM_NOSAC			8388608
#define ITEM_UNIQUE			16777216
#define ITEM_LIFESTEALER	   BIT_26
#define ITEM_SILVER			BIT_27

/* Class-restricted stuff dropped. */

#define ITEM_APPLY_NONE                 1
#define ITEM_APPLY_INFRA                2
#define ITEM_APPLY_INV                  4
#define ITEM_APPLY_DET_INV              8
#define ITEM_APPLY_SANC                16
#define ITEM_APPLY_SNEAK               32
#define ITEM_APPLY_HIDE                64
#define ITEM_APPLY_PROT               128
#define ITEM_APPLY_ENHANCED           256
#define ITEM_APPLY_DET_MAG            512
#define ITEM_APPLY_DET_HID           1024
#define ITEM_APPLY_DET_EVIL          2048
#define ITEM_APPLY_PASS_DOOR         4096
#define ITEM_APPLY_DET_POISON        8192
#define ITEM_APPLY_FLY              16384
#define ITEM_APPLY_KNOW_ALIGN       32768
#define ITEM_APPLY_DET_UNDEAD	    65536
#define ITEM_APPLY_HEATED	   131072


/* Class-restricted object stuff
 * So only warriors can use some swords, thieves daggers, etc
 * -- Stephen
 */

#define ITEM_CLASS_SOR          1
#define ITEM_CLASS_KNI          2
#define ITEM_CLASS_ASS          4
#define ITEM_CLASS_MON          8
#define ITEM_CLASS_NEC         16
#define ITEM_CLASS_PSI         32
#define ITEM_CLASS_CON         64
#define ITEM_CLASS_TEM        128
#define ITEM_CLASS_RAN        256

/*
 * Wear flags.
 * Used in #OBJECTS.
 */
#define ITEM_WEAR_NONE          BIT_0
#define ITEM_WEAR_HALO          BIT_1
#define ITEM_WEAR_AURA          BIT_2
#define ITEM_WEAR_HORNS         BIT_3
#define ITEM_WEAR_HEAD          BIT_4
#define ITEM_WEAR_FACE          BIT_5
#define ITEM_WEAR_BEAK          BIT_6
#define ITEM_WEAR_EAR           BIT_7
#define ITEM_WEAR_NECK          BIT_8
#define ITEM_WEAR_WINGS         BIT_9
#define ITEM_WEAR_SHOULDERS     BIT_10
#define ITEM_WEAR_ARMS          BIT_11
#define ITEM_WEAR_WRIST         BIT_12
#define ITEM_WEAR_HANDS         BIT_13
#define ITEM_WEAR_FINGER        BIT_14
#define ITEM_WEAR_CLAWS         BIT_15
#define ITEM_WEAR_HOLD_HAND     BIT_16
#define ITEM_WEAR_ABOUT         BIT_17
#define ITEM_WEAR_WAIST         BIT_18
#define ITEM_WEAR_BODY          BIT_19
#define ITEM_WEAR_TAIL          BIT_20
#define ITEM_WEAR_LEGS          BIT_21
#define ITEM_WEAR_FEET          BIT_22
#define ITEM_WEAR_HOOVES        BIT_23
#define ITEM_TAKE               BIT_24
/*
 * 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



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

/*
 * 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(macintosh)
#define PLAYER_DIR      "" /* Player files                 */
#define NPC_DIR		""
#define NULL_FILE       "proto.are" /* To reserve one stream        */
#define MOB_DIR         "" /* MOBProg files                */
#endif

#if defined(MSDOS)
#define PLAYER_DIR      "" /* Player files                 */
#define NPC_DIR		""
#define NULL_FILE       "nul" /* To reserve one stream        */
#define MOB_DIR         "" /* MOBProg files                */
#endif

#if defined(unix)
#define PLAYER_DIR      "../player/"   /* Player files                 */
#define NPC_DIR		"../npcs/"
#define NULL_FILE       "/dev/null" /* To reserve one stream        */
#define MOB_DIR         "MOBProgs/" /* MOBProg files                */
#endif

#if defined(linux)
#define PLAYER_DIR      "../player/"   /* Player files                 */
#define NPC_DIR		"../npcs/"
#define NULL_FILE       "/dev/null" /* To reserve one stream        */
#define MOB_DIR         "MOBProgs/" /* MOBProg files                */
#endif

#define AREA_LIST       "area.lst"  /* List of areas                */

#define MAIL_DIR        "../mail/"
#define DATA_DIR        "../data/"
#define BUG_DIR         "../reports/"
#define BUG_FILE       BUG_DIR  "bugs.txt"   /* For 'bug' and bug( )         */
#define IDEA_FILE      BUG_DIR   "ideas.txt" /* For 'idea'                   */
#define TYPO_FILE      BUG_DIR   "typos.txt" /* For 'typo'                   */
#define NOTE_FILE      DATA_DIR "notes.txt"  /* For 'notes'                  */
/* FIXME: boards.txt in here????? */
#define SHUTDOWN_FILE   BUG_DIR  "shutdown.txt" /* For 'shutdown'               */

#define CLAN_FILE		DATA_DIR "clandata.dat" /* stores clan diplomacy data   */
#define CORPSE_FILE	DATA_DIR "corpses.lst"
#define MARKS_FILE	DATA_DIR "roommarks.lst"
#define BANS_FILE	DATA_DIR "bans.lst"
#define RULERS_FILE	DATA_DIR "rulers.lst"
#define CONTROLS_FILE	DATA_DIR "area_controls.lst"
#define BRANDS_FILE	DATA_DIR "brands.lst"

#define SYSDAT_FILE	DATA_DIR "system.dat"

#if defined(SOE) && !defined(SOETEST) && !defined(SOEBLD)
#define WHO_HTML_FILE   "/home/ftp/pub/webpage/soewholist.html"   /* for ftping who list to html web page :) */
#define WHO_COUNT_FILE  "/home/ftp/pub/webpage/whocount.html"
#endif
#if !defined(WHO_HTML_FILE)
#define WHO_HTML_FILE   DATA_DIR "whofile"   /* for ftping who list to html web page :) */
#define WHO_COUNT_FILE  DATA_DIR "whocountfile"
#endif
/* Other Stuff - Flar */
#define COPYOVER_FILE	"COPYOVER.TXT" /* Temp data file used for copyover */
#define EXE_FILE		"../src/ack"   /* The one that runs the ACK! */