AwakeMUD-0.51Beta/area/
AwakeMUD-0.51Beta/doc/
AwakeMUD-0.51Beta/lib/
AwakeMUD-0.51Beta/lib/etc/
AwakeMUD-0.51Beta/lib/fixer_data/
AwakeMUD-0.51Beta/lib/misc/
AwakeMUD-0.51Beta/lib/plrobjs/
AwakeMUD-0.51Beta/lib/plrobjs/A-E/
AwakeMUD-0.51Beta/lib/plrobjs/K-O/
AwakeMUD-0.51Beta/lib/plrobjs/U-Z/
AwakeMUD-0.51Beta/lib/plrspells/A-E/
AwakeMUD-0.51Beta/lib/plrtext/A-E/
AwakeMUD-0.51Beta/lib/world/
AwakeMUD-0.51Beta/lib/world/mob/
AwakeMUD-0.51Beta/lib/world/obj/
AwakeMUD-0.51Beta/lib/world/qst/
AwakeMUD-0.51Beta/lib/world/shp/
AwakeMUD-0.51Beta/lib/world/wld/
AwakeMUD-0.51Beta/lib/world/zon/
/* ****************************************
* file: awake.h -- AwakeMUD Header File   *
* A centralized definition file for all   *
* the major defines, etc...               *
* (c)2001 the AwakeMUD Consortium         *
* Code migrated from other header files   *
* (such as spells.h) (c) 1993, 94 by the  *
* trustees of the John Hopkins University *
* and (c) 1990-1991 The DikuMUD group     *
**************************************** */

#ifndef _awake_h_
#define _awake_h_

#define NUM_RESERVED_DESCS      8

/* pertaining to vnums/rnums */

#define REAL 0
#define VIRTUAL 1

/* gender */

#define SEX_NEUTRAL   0
#define SEX_MALE      1
#define SEX_FEMALE    2

/* positions */

#define POS_DEAD       0        /* dead                 */
#define POS_MORTALLYW  1        /* mortally wounded     */
#define POS_INCAP      2        /* incapacitated        */
#define POS_STUNNED    3        /* stunned              */
#define POS_SLEEPING   4        /* sleeping             */
#define POS_RESTING    5        /* resting              */
#define POS_SITTING    6        /* sitting              */
#define POS_FIGHTING   7        /* fighting             */
#define POS_STANDING   8        /* standing             */

/* attribute defines */

#define ATT_BOD         400
#define ATT_QUI         401
#define ATT_STR         402
#define ATT_CHA         403
#define ATT_INT         404
#define ATT_WIL         405
#define ATT_MAG         406
#define ATT_REA         407
#define ATT_ESS         408

/* attributes (mostly for trainers) */

#define BOD             (1 << 0)
#define QUI             (1 << 1)
#define STR             (1 << 2)
#define CHA             (1 << 3)
#define INT             (1 << 4)
#define WIL             (1 << 5)
#define ESS             (1 << 6)
#define REA             (1 << 7)
#define MAG             (1 << 8)

/* char and mob related defines */

/* PC archetypes */   

#define AT_UNDEFINED    -1
#define AT_MAGE         0
#define AT_SHAMAN       1        
#define AT_DECKER       2        
#define AT_SAMURAI      3
#define AT_ADEPT        4        

#define NUM_ATS         5  /* This must be the number of archetypes!! */

/* magical traditions */

#define TRAD_HERMETIC   0
#define TRAD_SHAMANIC   1
#define TRAD_MUNDANE    2
#define TRAD_ADEPT      4

/* totems */

#define TOTEM_UNDEFINED         0
#define TOTEM_BEAR              1
#define TOTEM_EAGLE             2
#define TOTEM_RAVEN             3
#define TOTEM_WOLF              4
#define TOTEM_SHARK             5
#define TOTEM_LION              6
#define TOTEM_COYOTE            7
#define TOTEM_GATOR             8
#define TOTEM_OWL               9
#define TOTEM_SNAKE             10
#define TOTEM_RACCOON           11
#define TOTEM_CAT               12
#define TOTEM_DOG               13
#define TOTEM_RAT               14

/* PC races */

#define RACE_UNDEFINED          -1
#define RACE_HUMAN              0
#define RACE_DWARF              1
#define RACE_ELF                2
#define RACE_ORK                3 
#define RACE_TROLL              4 

#define NUM_RACES               5  /* This must be the number of races */

/* level definitions */

#define LVL_OWNER               9
#define LVL_PRESIDENT   8
#define LVL_DIRECTOR    7
#define LVL_ADVISOR             6
#define LVL_MANAGER             5
#define LVL_ARCHITECT   4
#define LVL_BUILDER             3
#define LVL_LEGEND              2

#define LVL_FREEZE              LVL_PRESIDENT

/* character equipment positions: used as index for char_data.equipment[] */
/* note: don't confuse these constants with the ITEM_ bitvectors
   which control the valid places you can wear a piece of equipment */

#define WEAR_LIGHT      0
#define WEAR_FINGER_R   1
#define WEAR_FINGER_L   2
#define WEAR_NECK_1     3
#define WEAR_NECK_2     4
#define WEAR_BODY       5
#define WEAR_HEAD       6
#define WEAR_LEGS       7
#define WEAR_FEET       8
#define WEAR_HANDS      9
#define WEAR_ARMS      10
#define WEAR_SHIELD    11
#define WEAR_ABOUT     12
#define WEAR_WAIST     13
#define WEAR_WRIST_R   14
#define WEAR_WRIST_L   15
#define WEAR_WIELD     16
#define WEAR_HOLD      17
#define WEAR_EYES      18
#define WEAR_EAR       19
#define WEAR_PATCH     20       /* this must be last! */ 

#define NUM_WEARS      21       /* This must be the # of eq positions!! */

/* player flags: used by char_data.char_specials.act */

#define PLR_KILLER              (1 << 0)  /* Player is a player-killer          */
#define PLR_THIEF               (1 << 1)  /* Player is a player-thief           */
#define PLR_FROZEN              (1 << 2)  /* Player is frozen                   */
#define PLR_DONTSET             (1 << 3)  /* Don't EVER set (ISNPC bit)         */
#define PLR_NEWBIE              (1 << 4)  /* Player is a newbie still           */
#define PLR_JUST_DIED           (1 << 5)  /* Player just died                   */
#define PLR_CRASH               (1 << 6)  /* Player needs to be crash-saved     */
#define PLR_CRYO                (1 << 7)  /* Player is cryo-saved (purge prog)  */
#define PLR_SITEOK              (1 << 8)  /* Player has been site-cleared               */
#define PLR_NOSHOUT             (1 << 9)  /* Player not allowed to shout/goss   */
#define PLR_NOTITLE             (1 << 10) /* Player not allowed to set title    */
#define PLR_DELETED             (1 << 11) /* Player deleted - space reusable    */
#define PLR_NODELETE            (1 << 12) /* Player shouldn't be deleted                */
#define PLR_NOWIZLIST           (1 << 13) /* Player shouldn't be on wizlist     */
#define PLR_NOSTAT              (1 << 14) /* Player cannot be statted, etc      */
#define PLR_LOADROOM            (1 << 15) /* Player uses nonstandard loadroom   */
#define PLR_INVSTART            (1 << 16) /* Player should enter game wizinvis  */
#define PLR_GUEST               (1 << 17) /* Players is guest of owner          */
#define PLR_QUESTER             (1 << 18) /* Player has access to quest comms   */
#define PLR_OLC                 (1 << 19) /* Player has access to olc commands  */
#define PLR_MATRIX              (1 << 20) /* Player is in the Matrix            */
#define PLR_PERCEIVE            (1 << 21) /* player is astrally perceiving      */
#define PLR_PROJECT             (1 << 22) /* player is astrally projecting      */
#define PLR_SWITCHED            (1 << 23) /* player is switched to a mob */
#define PLR_WRITING             (1 << 24) /* Player writing (board/mail/olc)    */
#define PLR_MAILING             (1 << 25) /* Player is writing mail             */
#define PLR_EDITING             (1 << 26) /* Player is zone editing             */
#define PLR_SPELL_CREATE        (1 << 27) /* Player is creating a spell         */
#define PLR_CUSTOMIZE           (1 << 28) /* Player is customizing persona        */
#define PLR_NOSNOOP             (1 << 29) /* Player is not snoopable            */  

/* mobile flags: used by char_data.char_specials.act */

#define MOB_SPEC                (1 << 0)  /* Mob has a callable spec-proc       */
#define MOB_SENTINEL            (1 << 1)  /* Mob should not move                */
#define MOB_SCAVENGER           (1 << 2)  /* Mob picks up stuff on the ground   */
#define MOB_ISNPC               (1 << 3)  /* (R) Automatically set on all Mobs  */
#define MOB_AWARE               (1 << 4)  /* Mob can't be backstabbed           */
#define MOB_AGGRESSIVE          (1 << 5)  /* Mob hits players in the room       */
#define MOB_STAY_ZONE           (1 << 6)  /* Mob shouldn't wander out of zone   */
#define MOB_WIMPY               (1 << 7)  /* Mob flees if severely injured      */
#define MOB_AGGR_ORK            (1 << 8)  /* auto attack ork PC's               */
#define MOB_AGGR_ELF            (1 << 9)  /* auto attack elf PC's               */
#define MOB_AGGR_DWARF          (1 << 10) /* auto attack dwarf PC's             */
#define MOB_MEMORY              (1 << 11) /* remember attackers if attacked     */
#define MOB_HELPER              (1 << 12) /* attack PCs fighting other NPCs     */
#define MOB_NOCHARM             (1 << 13) /* Mob can't be charmed               */
#define MOB_DUAL_NATURE         (1 << 14) /* mob is dual-natured                */
#define MOB_IMMEXPLODE          (1 << 15) /* mob is immune to explosions        */
#define MOB_AGGR_TROLL          (1 << 16) /* auto attack troll PC's             */
#define MOB_NOBLIND             (1 << 17) /* Mob can't be blinded               */
#define MOB_ASTRAL              (1 << 18) /* Mob is solely in the astral plane  */
#define MOB_GUARD               (1 << 19) /* mob carries out security           */
#define MOB_AGGR_HUMAN          (1 << 20) /* auto attack human PC's             */
#define MOB_SNIPER              (1 << 21) /* mob searches area for PCs          */
#define MOB_PRIVATE             (1 << 22) /* mob cannot be statted              */
#define MOB_TRACK               (1 << 23) /* (R) for security routines          */

/* preference flags: used by char_data.player_specials.pref */

#define PRF_BRIEF               (1 << 0)  /* Room descs won't normally be shown 	*/
#define PRF_COMPACT             (1 << 1)  /* No extra CRLF pair before prompts  	*/
#define PRF_AUTOEXIT    	(1 << 2)  /* Display exits in a room            	*/
#define PRF_FIGHTGAG    	(1 << 3)  /* Gag extra fight messages           	*/
#define PRF_MOVEGAG             (1 << 4)  /* Gag extra movement messages                */
#define PRF_DEAF                (1 << 5)  /* Can't hear shouts                  	*/
#define PRF_NOTELL              (1 << 6)  /* Can't receive tells                        */
#define PRF_NORADIO             (1 << 7)  /* Can't hear radio frequencies               */
#define PRF_NONEWBIE    	(1 << 8) /* Can't hear newbie channel           	*/
#define PRF_NOREPEAT    	(1 << 9) /* No repetition of comm commands      	*/
#define PRF_NOWIZ               (1 << 10) /* Can't hear wizline                 	*/
#define PRF_PKER                (1 << 11) /* is able to pk/be pked                      */
#define PRF_QUEST               (1 << 12) /* On quest                           	*/
#define PRF_AFK         	(1 << 13) /* Afk                                        */
#define PRF_COLOR_1             (1 << 14) /* Color (low bit)                    	*/
#define PRF_COLOR_2             (1 << 15) /* Color (high bit)                   	*/
#define PRF_NOHASSLE    	(1 << 16) /* Aggr mobs won't attack             	*/
#define PRF_ROOMFLAGS   	(1 << 17) /* Can see room flags (ROOM_x)                */
#define PRF_HOLYLIGHT   	(1 << 18) /* Can see in dark                    	*/
#define PRF_CONNLOG             (1 << 19) /* Views ConnLog                              */
#define PRF_DEATHLOG    	(1 << 20) /* Views DeathLog                             */
#define PRF_MISCLOG             (1 << 21) /* Views MiscLog                              */
#define PRF_WIZLOG              (1 << 22) /* Views WizLog                               */
#define PRF_SYSLOG              (1 << 23) /* Views SysLog                               */
#define PRF_ZONELOG             (1 << 24) /* Views ZoneLog                              */
#define PRF_MSP                 (1 << 25) /* has enabled MSP                            */
#define PRF_ROLLS               (1 << 26) /* sees details on rolls 			*/
#define PRF_NOOOC               (1 << 27) /* can't hear ooc channel 			*/
#define PRF_AUTOINVIS		(1 << 28) /* to toggle auto-invis for immortals		*/

/* log watch */

#define LOG_CONNLOG        0    
#define LOG_DEATHLOG       1    
#define LOG_MISCLOG        2    
#define LOG_WIZLOG         3    
#define LOG_SYSLOG         4    
#define LOG_ZONELOG        5    

/* player conditions */

#define DRUNK        0 
#define FULL         1 
#define THIRST       2 

/* affect bits: used in char_data.char_specials.saved.affected_by */
/* WARNING: In the world files, NEVER set the bits marked "R" ("Reserved") */

#define AFF_BLIND               (1 << 0)  /* (R) Char is blind                  */
#define AFF_INVISIBLE   	(1 << 1)  /* Char is invisible                  */
#define AFF_DETECT_ALIGN        (1 << 2)  /* Char is sensitive to align         */
#define AFF_DETECT_INVIS        (1 << 3)  /* Char can see invis chars           */
#define AFF_DETECT_MAGIC        (1 << 4)  /* Char is sensitive to magic         */
#define AFF_SENSE_LIFE 	 	(1 << 5)  /* Char can sense hidden life         */
#define AFF_WATERWALK   	(1 << 6)  /* Char can walk on water             */
#define AFF_GROUP               (1 << 7)  /* (R) Char is grouped                */
#define AFF_CURSE               (1 << 8)  /* Char is cursed                     */
#define AFF_INFRAVISION 	(1 << 9)  /* Char can see in dark               */
#define AFF_POISON              (1 << 10) /* (R) Char is poisoned               */
#define AFF_SLEEP               (1 << 11) /* (R) Char magically asleep          */
#define AFF_NOTRACK             (1 << 12) /* Char can't be tracked              */
#define AFF_LOW_LIGHT   	(1 << 13) /* Char has low light eyes            */
#define AFF_LASER_SIGHT 	(1 << 14) /* Char using laser sight             */
#define AFF_SNEAK               (1 << 15) /* Char can move quietly              */
#define AFF_HIDE                (1 << 16) /* Char is hidden                     */
#define AFF_VISION_MAG_1        (1 << 17) /* Magnification level 1              */
#define AFF_CHARM               (1 << 18) /* Char is charmed                    */
#define AFF_ACTION              (1 << 19) /* Player gets -10 on next init roll  */
#define AFF_VISION_MAG_2        (1 << 20) /* Magnification level 2              */
#define AFF_VISION_MAG_3        (1 << 21) /* Magnification level 3              */
#define AFF_COUNTER_ATT 	(1 << 22) /* plr just attacked                  */
#define AFF_STABILIZE   	(1 << 23) /* player won't die due to phys loss  */
#define AFF_PETRIFY             (1 << 24) /* player's commands don't work       */
#define AFF_IMP_INVIS   	(1 << 25) /* char is improved invis             */


/* room-related defines */

/* The cardinal directions: used as index to room_data.dir_option[] */

#define NORTH          0
#define NORTHEAST      1
#define EAST           2
#define SOUTHEAST      3
#define SOUTH          4
#define SOUTHWEST      5
#define WEST           6
#define NORTHWEST      7
#define UP             8
#define DOWN           9
#define MATRIX        10

#define NUM_OF_DIRS     11      /* number of directions in a room (nsewud) */
                                /* also, ne, se, sw, nw, and matrix        */

/* "extra" bitvector settings for movement */
#define CHECK_SPECIAL   1
#define LEADER          2

/* Room flags: used in room_data.room_flags */

/* WARNING: In the world files, NEVER set the bits marked "R" ("Reserved") */
#define ROOM_DARK               (1 << 0)   /* Dark                      */   
#define ROOM_DEATH              (1 << 1)   /* Death trap                */   
#define ROOM_NOMOB              (1 << 2)   /* MOBs not allowed          */   
#define ROOM_INDOORS            (1 << 3)   /* Indoors                   */   
#define ROOM_PEACEFUL           (1 << 4)   /* Violence not allowed      */   
#define ROOM_SOUNDPROOF         (1 << 5)   /* Shouts, gossip blocked    */   
#define ROOM_NOTRACK            (1 << 6)   /* Track won't go through    */   
#define ROOM_NOMAGIC            (1 << 7)   /* Magic not allowed         */   
#define ROOM_TUNNEL             (1 << 8)   /* room for only 1 pers      */   
#define ROOM_PRIVATE            (1 << 9)   /* Can't teleport in         */   
#define ROOM_BUILDERROOM        (1 << 10)  /* LVL_GOD+ only allowed     */   
#define ROOM_HOUSE              (1 << 11)  /* (R) Room is a house       */   
#define ROOM_HOUSE_CRASH        (1 << 12)  /* (R) House needs saving    */   
#define ROOM_ATRIUM             (1 << 13)  /* (R) The door to a house   */   
#define ROOM_OLC                (1 << 14)  /* (R) Modifyable/!compress  */   
#define ROOM_BFS_MARK           (1 << 15)  /* (R) breath-first srch mrk */   
#define ROOM_LOW_LIGHT          (1 << 16)  /* Room viewable with ll-eyes */  
#define ROOM_MATRIX             (1 << 17)  /* Room is part of Matrix    */   
#define ROOM_CRIME_OK           (1 << 18)  /* Crimes can be committed here */
#define ROOM_HERMETIC_LIBRARY   (1 << 19)  /* Room is spell library     */   
#define ROOM_MEDICINE_LODGE     (1 << 20)  /* Room is a medicin lodge   */   
#define ROOM_FALL               (1 << 21)  // room is a 'fall' room
#define ROOM_MGRROOM            (1 << 22)
#define ROOM_DIRECTORROOM       (1 << 23)
#define ROOM_PRESROOM           (1 << 24)
#define ROOM_NOQUIT             (1 << 25)
#define ROOM_SENT               (1 << 26)

/* Exit info: used in room_data.dir_option.exit_info */
#define EX_ISDOOR               (1 << 0)   /* Exit is a door            */
#define EX_CLOSED               (1 << 1)   /* The door is closed        */
#define EX_LOCKED               (1 << 2)   /* The door is locked        */
#define EX_PICKPROOF            (1 << 3)   /* Lock can't be picked      */
#define EX_DESTROYED              (1 << 4)       /* door has been destroyed     */
#define EX_HIDDEN               (1 << 5)   /* exit is hidden            */

/* Sector types: used in room_data.sector_type */
#define SECT_INSIDE          0             /* Indoors                   */
#define SECT_CITY            1             /* In a city                 */
#define SECT_FIELD           2             /* In a field                */
#define SECT_FOREST          3             /* In a forest               */
#define SECT_HILLS           4             /* In the hills              */
#define SECT_MOUNTAIN        5             /* On a mountain             */
#define SECT_WATER_SWIM      6             /* Swimmable water           */
#define SECT_WATER_NOSWIM    7             /* Water - need a boat       */
#define SECT_UNDERWATER      8             /* Underwater                */
#define SECT_FLYING          9             /* Wheee!                    */
#define SECT_BLUE           10             /* Blue node for matrix      */
#define SECT_GREEN          11             /* Green node for matrix     */
#define SECT_ORANGE         12             /* Orange node for matrix    */
#define SECT_RED            13             /* Red node for matrix       */
#define SECT_BLACK          14             /* Black node for matrix     */

/* npc types */

#define CLASS_OTHER       0
#define CLASS_SPIRIT      1
#define CLASS_HUMANOID    2
#define CLASS_ANIMAL      3
#define CLASS_DRAGON      4
#define CLASS_ACCESS      5
#define CLASS_BARRIER     6
#define CLASS_SCRAMBLE    7
#define CLASS_BLASTER     8
#define CLASS_KILLER      9
#define CLASS_TAR_BABY    10
#define CLASS_TAR_PIT     11
#define CLASS_TRACE_REPORT 12
#define CLASS_TRACE_DUMP  13 
#define CLASS_TRACE_BURN  14 
#define CLASS_BLACK       15 

/* spirit powers */

#define PWR_ACCIDENT            0
#define PWR_ALIENATE            1
#define PWR_AURA                2
#define PWR_BIND                3
#define PWR_BREATHE             4
#define PWR_CONCEAL             5
#define PWR_CONFUSE             6
#define PWR_ENGULF              7
#define PWR_FEAR                8
#define PWR_FIND                9
#define PWR_GUARD               10
#define PWR_MANIFEST            11
#define PWR_PROJECT             12

#define NUM_SPIRIT_POWERS       13

/* allergies */

#define ALLERGIC_NONE       0
#define ALLERGIC_SILVER     1
#define ALLERGIC_IRON       2
#define ALLERGIC_PLASTIC    3
#define ALLERGIC_SUNLIGHT   4

/* reaction to allergies */  

#define REACT_NONE          0
#define REACT_NUISANCE      1
#define REACT_MILD          2
#define REACT_MODERATE      3
#define REACT_SEVERE        4


/* magic global defines */

/* Note, we add the 100/10 and subtract 10 later to adjust for
 * spells with negative drain.*/
#define DRAIN_POWER(x) ((int)(((x)+100) / 10)-10)
/* Add 100 so -6 gives us 4. */ 
#define DRAIN_LEVEL(x) (((x)+100)%10)

#define DEFAULT_STAFF_LVL       12
#define DEFAULT_WAND_LVL        12

#define CAST_UNDEFINED  -1
#define CAST_SPELL      0
#define CAST_POTION     1
#define CAST_WAND       2
#define CAST_STAFF      3
#define CAST_SCROLL     4

#define MAG_DAMAGE      (1 << 0)
#define MAG_AFFECTS     (1 << 1)
#define MAG_UNAFFECTS   (1 << 2)
#define MAG_POINTS      (1 << 3)
#define MAG_ALTER_OBJS  (1 << 4)
#define MAG_GROUPS      (1 << 5)
#define MAG_MASSES      (1 << 6)
#define MAG_AREAS       (1 << 7)
#define MAG_SUMMONS     (1 << 8)
#define MAG_CREATIONS   (1 << 9)
#define MAG_MANUAL      (1 << 10)
#define MAG_COMBAT      (1 << 11)

#define MANA         0
#define MENTAL       0
#define PHYSICAL     1

/* reserved skill defines */
#define TYPE_UNDEFINED               -1
#define SPELL_RESERVED_DBC            0  /* SKILL NUMBER ZERO -- RESERVED */

/* PLAYER SPELLS -- Numbered from 1 to MAX_SPELLS */

#define SPELL_X                         1
#define SPELL_XX                        2
#define SPELL_ANALYZE_DEVICE            3
#define SPELL_ANTI_BULLET               4
#define SPELL_ANTI_SPELL                5
#define SPELL_ANTIDOTE                  6
#define SPELL_ARMOR                     7
#define SPELL_CHAOS                     8
#define SPELL_CHAOTIC_WORLD             9
#define SPELL_CLAIRVOYANCE              10
#define SPELL_CLOUT                     11
#define SPELL_COMBAT_SENSE              12
#define SPELL_CONFUSION                 13
#define SPELL_CURE_DISEASE              14
#define SPELL_DEATH_TOUCH               15
#define SPELL_DETECT_ALIGNMENT          16
#define SPELL_DETECT_INVIS              17
#define SPELL_DETECT_MAGIC              18
#define SPELL_HEAL                      19
#define SPELL_HELLBLAST                 20
#define SPELL_IMPROVED_INVIS            21
#define SPELL_INFLUENCE                 22
#define SPELL_INVISIBILITY              23
#define SPELL_MANABALL                  24
#define SPELL_MANABLAST                 25
#define SPELL_MANA_BOLT                 26
#define SPELL_MANA_CLOUD                27
#define SPELL_MANA_DART                 28
#define SPELL_MANA_MISSILE              29
#define SPELL_OVERSTIMULATION           30
#define SPELL_PETRIFY                   31
#define SPELL_POWERBALL                 32
#define SPELL_POWERBLAST                33
#define SPELL_POWER_BOLT                34
#define SPELL_POWER_CLOUD               35
#define SPELL_POWER_DART                36
#define SPELL_POWER_MISSILE             37
#define SPELL_RAM                       38
#define SPELL_RAM_TOUCH                 39
#define SPELL_RESIST_PAIN               40
#define SPELL_SHAPE_CHANGE              41
#define SPELL_STABILIZE                 42
#define SPELL_STUNBALL                  43
#define SPELL_STUNBLAST                 44
#define SPELL_STUN_BOLT                 45
#define SPELL_STUN_CLOUD                46
#define SPELL_STUN_MISSILE              47
#define SPELL_STUN_TOUCH                48
#define SPELL_TOXIC_WAVE                49
#define SPELL_POWER_SHAFT               50
#define SPELL_POWER_BURST               51
#define SPELL_MANA_SHAFT                52
#define SPELL_MANA_BURST                53
#define SPELL_STUN_SHAFT                54
#define SPELL_STUN_BURST                55
#define SPELL_STUN_DART                 56
/* new spells can be added here */

/* spirit powers */
#define SPELL_ALIENATE              83
#define SPELL_AURA                  84
#define SPELL_BIND                  85
#define SPELL_GUARD                 86

/* player created spells */
#define SPELL_ANALYZE_MAGIC         87
#define SPELL_ANALYZE_PERSON        88
#define SPELL_DECREASE_ATTRIB       89
#define SPELL_ELEMENTBALL           90
#define SPELL_ELEMENT_BOLT          91
#define SPELL_ELEMENT_CLOUD         92
#define SPELL_ELEMENT_DART          93
#define SPELL_ELEMENT_MISSILE       94
#define SPELL_INCREASE_ATTRIB       95
#define SPELL_INCREASE_REFLEXES     96
#define SPELL_LIGHT                 97

/* mobile-only spells */
#define SPELL_POISON                98
#define SPELL_TELEPORT              99

/* Insert new spells here, up to MAX_SPELLS */
#define MAX_SPELLS                   99

/* player skills defined here, numbered from MAX_SPELLS+1 to MAX_SKILLS */

/* combat-oriented skills */

#define SKILL_STEALTH                100
#define SKILL_ATHLETICS              101
#define SKILL_ARMED_COMBAT           102
#define SKILL_EDGED_WEAPONS          103
#define SKILL_POLE_ARMS              104
#define SKILL_WHIPS_FLAILS           105
#define SKILL_CLUBS                  106
#define SKILL_UNARMED_COMBAT         107
#define SKILL_GRAPPLE                108
#define SKILL_CYBER_IMPLANTS         109
#define SKILL_FIREARMS               110
#define SKILL_PISTOLS                111
#define SKILL_RIFLES                 112
#define SKILL_SHOTGUNS               113
#define SKILL_ASSAULT_RIFLES         114
#define SKILL_SMG                    115
#define SKILL_GRENADE_LAUNCHERS      116
#define SKILL_TASERS                 117
#define SKILL_GUNNERY                118
#define SKILL_MACHINE_GUNS           119
#define SKILL_MISSILE_LAUNCHERS      120
#define SKILL_ASSAULT_CANNON         121 
#define SKILL_ARTILLERY              122 
#define SKILL_PROJECTILES            123
#define SKILL_BOWS                   124
#define SKILL_CROSSBOWS              125
#define SKILL_THROWING_WEAPONS       126
#define SKILL_NONAERODYNAMIC         127
#define SKILL_AERODYNAMIC            128
#define SKILL_DEMOLITIONS            129

/* non-combat oriented skills */

#define SKILL_COMPUTER               130
#define SKILL_ELECTRONICS            131
#define SKILL_COMPUTER_THEORY        132
#define SKILL_BIOTECH                133
#define SKILL_MEDICAL                134
#define SKILL_CYBERSURGERY           135
#define SKILL_BIOLOGY                136
#define SKILL_LEADERSHIP             137
#define SKILL_INTERROGATION          138
#define SKILL_NEGOTIATION            139
#define SKILL_MAGICAL_THEORY         140
#define SKILL_CONJURING              141
#define SKILL_SORCERY                142
#define SKILL_SHAMANIC_STUDIES       143
#define SKILL_CORPORATE_ETIQUETTE    144
#define SKILL_MEDIA_ETIQUETTE        145
#define SKILL_STREET_ETIQUETTE       146
#define SKILL_TRIBAL_ETIQUETTE       147
#define SKILL_ELF_ETIQUETTE          148

/* reserved skills -- do not change */

#define SKILL_BACKSTAB              149
#define SKILL_BASH                  150
#define SKILL_HIDE                  151
#define SKILL_KICK                  152
#define SKILL_PICK_LOCK             153
#define SKILL_PUNCH                 154
#define SKILL_RESCUE                155
#define SKILL_SNEAK                 156
#define SKILL_STEAL                 157
#define SKILL_TRACK                 158

/* more non-combat skills */

#define SKILL_CLIMBING            160 /* concentration of athletics */
#define SKILL_PERCEPTION          161
#define SKILL_COMBAT_SENSE        162
#define SKILL_REFLEXES            163
#define SKILL_KILL_HANDS          164
#define SKILL_RESISTANCE          165

/* new skills may be added here up to MAX_SKILLS (200) */

/* mobile and object spells and skills */
#define SPELL_IDENTIFY               201
#define SPELL_FIRE_BREATH            202
#define SPELL_GAS_BREATH             203
#define SPELL_FROST_BREATH           204
#define SPELL_ACID_BREATH            205
#define SPELL_LIGHTNING_BREATH       206

/* new mobile/object spells/skills can be inserted here up to 299 */
#define TOP_SPELL_DEFINE             299

/* object-spell related defines */

#define SPELL_TYPE_SPELL   0
#define SPELL_TYPE_POTION  1
#define SPELL_TYPE_WAND    2
#define SPELL_TYPE_STAFF   3
#define SPELL_TYPE_SCROLL  4

/* ban defines -- do not change */

#define BAN_NOT         0 
#define BAN_NEW         1
#define BAN_SELECT      2
#define BAN_ALL         3
        
#define BANNED_SITE_LENGTH    50

/* weapon attack types */

#define TYPE_HIT              300     // melee
#define TYPE_STING            301  
#define TYPE_WHIP             302
#define TYPE_SLASH            303
#define TYPE_BITE             304
#define TYPE_BLUDGEON         305
#define TYPE_CRUSH            306
#define TYPE_POUND            307
#define TYPE_CLAW             308
#define TYPE_MAUL             309
#define TYPE_THRASH           310
#define TYPE_PIERCE           311
#define TYPE_PUNCH            312
#define TYPE_STAB             313
#define TYPE_TASER            314  
#define TYPE_SHURIKEN         315    // throwing weapons - 1 room
#define TYPE_THROWING_KNIFE   316  
#define TYPE_ARROW            317
#define TYPE_HAND_GRENADE     318    // explosive weapons
#define TYPE_GRENADE_LAUNCHER 319  
#define TYPE_ROCKET           320
#define TYPE_PISTOL           321    // gun
#define TYPE_BLAST            322
#define TYPE_RIFLE            323
#define TYPE_SHOTGUN          324
#define TYPE_MACHINE_GUN      325
#define TYPE_CANNON           326
#define TYPE_BIFURCATE        327

/* new attack types can be added here - up to TYPE_SUFFERING */

/* death messages */
#define TYPE_SUFFERING          399
#define TYPE_EXPLOSION          400
#define TYPE_SCATTERING         401
#define TYPE_FALL               402
#define TYPE_DROWN              403
#define TYPE_ALLERGY            404
#define TYPE_BIOWARE            405
#define TYPE_RECOIL             406

/* all those attack types can be used plus these for damage types to
* objects */

/* magic attack types */
#define TYPE_COMBAT_SPELL               500
#define TYPE_MANIPULATION_SPELL         501


/* used in void hit, for counter attacks */
#define TYPE_MELEE 1234

/* combat spell effects */
#define SPELL_EFFECT_NONE               0
#define SPELL_EFFECT_ACID               1
#define SPELL_EFFECT_AIR                2
#define SPELL_EFFECT_EARTH              3
#define SPELL_EFFECT_FIRE               4
#define SPELL_EFFECT_ICE                5
#define SPELL_EFFECT_LIGHTNING          6
#define SPELL_EFFECT_WATER              7

/* detection spell effects */
#define SPELL_EFFECT_ANALYZE_MAGIC      0
#define SPELL_EFFECT_ANALYZE_DEVICE     1
#define SPELL_EFFECT_ANALYZE_PERSON     2
#define SPELL_EFFECT_CLAIRVOYANCE       3
#define SPELL_EFFECT_COMBAT_SENSE       4
#define SPELL_EFFECT_DETECT_ALIGN       5
#define SPELL_EFFECT_DETECT_INVIS       6
#define SPELL_EFFECT_DETECT_MAGIC       7

/* health spell effects */
#define SPELL_EFFECT_ANTIDOTE           	0
#define SPELL_EFFECT_CURE                       1
#define SPELL_EFFECT_DECREASE_BOD               2
#define SPELL_EFFECT_DECREASE_CHA               3
#define SPELL_EFFECT_DECREASE_INT               4
#define SPELL_EFFECT_DECREASE_QUI               5
#define SPELL_EFFECT_DECREASE_REA               6
#define SPELL_EFFECT_DECREASE_STR               7
#define SPELL_EFFECT_DECREASE_WIL               8
#define SPELL_EFFECT_HEAL                       9
#define SPELL_EFFECT_INCREASE_BOD               10
#define SPELL_EFFECT_INCREASE_CHA               11
#define SPELL_EFFECT_INCREASE_INT               12
#define SPELL_EFFECT_INCREASE_QUI               13
#define SPELL_EFFECT_INCREASE_REA               14
#define SPELL_EFFECT_INCREASE_REFLEX    	15
#define SPELL_EFFECT_INCREASE_STR               16
#define SPELL_EFFECT_INCREASE_WIL               17
#define SPELL_EFFECT_RESIST_PAIN                18
#define SPELL_EFFECT_STABILIZE          	19

/* illusion spell effects */
#define SPELL_EFFECT_CHAOS              0
#define SPELL_EFFECT_CONFUSION    	1
#define SPELL_EFFECT_IMP_INVIS    	2
#define SPELL_EFFECT_INVIS              3
#define SPELL_EFFECT_OVERSTIM     	4

/* manipulation spell effects */
#define SPELL_EFFECT_ARMOR              8
#define SPELL_EFFECT_LIGHT              9
#define SPELL_EFFECT_INFLUENCE          10

/* object-related defines */                                           

/* item types: used by obj_data.obj_flags.type_flag */

#define ITEM_LIGHT      1               /* Item is a light source       */
#define ITEM_SCROLL     2               /* Item is a scroll             */
#define ITEM_WAND       3               /* Item is a wand               */
#define ITEM_STAFF      4               /* Item is a staff              */
#define ITEM_WEAPON     5               /* Item is a weapon             */
#define ITEM_FIREWEAPON 6               /* Item is bow/xbow             */
#define ITEM_MISSILE    7               /* Item is arrow/bolt   */
#define ITEM_TREASURE   8               /* Item is a treasure, not nuyen        */
#define ITEM_ARMOR      9               /* Item is armor                */
#define ITEM_POTION    10               /* Item is a potion             */
#define ITEM_WORN      11               /* Item is worn, not armor      */
#define ITEM_OTHER     12               /* Misc object                  */
#define ITEM_TRASH     13               /* Trash - shopkeeps won't buy  */
#define ITEM_DOCWAGON  14               /* Item is a docwagon contract  */
#define ITEM_CONTAINER 15               /* Item is a container          */
#define ITEM_RADIO     16               /* Item is radio                */
#define ITEM_DRINKCON  17               /* Item is a drink container    */
#define ITEM_KEY       18               /* Item is a key                */
#define ITEM_FOOD      19               /* Item is food                 */
#define ITEM_MONEY     20               /* Item is money (nuyen/credstick)      */
#define ITEM_PHONE     21               /* Item is a phone              */
#define ITEM_BIOWARE   22               /* Item is bioware           	*/   
#define ITEM_FOUNTAIN  23               /* Item is a fountain           */
#define ITEM_CYBERWARE 24               /* Item is cyberware            */
#define ITEM_CYBERDECK 25               /* Item is a cyberdeck          */
#define ITEM_PROGRAM   26               /* Item is a program            */
#define ITEM_GUN_CLIP  27               /* Item is a gun clip           */
#define ITEM_GUN_ACCESSORY 28           /* Item is a gun accessory      */
#define ITEM_SPELL_FORMULA 29           /* Item is a spell formula      */
#define ITEM_WORKING_GEAR 30            /* kit, shop, facility		*/
#define ITEM_FOCUS      31              /* magical foci of various types */
#define ITEM_PATCH      32              /* type of slap patch		*/
#define ITEM_CLIMBING   33              /* climbing gear		*/
#define ITEM_QUIVER     34         	/* holds projectiles 		*/
#define ITEM_DECK_ACCESSORY 35      	/* decking accessory 		*/

/* take/wear flags: used by obj_data.obj_flags.wear_flags */

#define ITEM_WEAR_TAKE          (1 << 0)  /* Item can be takes          */
#define ITEM_WEAR_FINGER        (1 << 1)  /* Can be worn on finger      */
#define ITEM_WEAR_NECK          (1 << 2)  /* Can be worn around neck    */
#define ITEM_WEAR_BODY          (1 << 3)  /* Can be worn on body        */
#define ITEM_WEAR_HEAD          (1 << 4)  /* Can be worn on head        */
#define ITEM_WEAR_LEGS          (1 << 5)  /* Can be worn on legs        */
#define ITEM_WEAR_FEET          (1 << 6)  /* Can be worn on feet        */
#define ITEM_WEAR_HANDS         (1 << 7)  /* Can be worn on hands       */
#define ITEM_WEAR_ARMS          (1 << 8)  /* Can be worn on arms        */
#define ITEM_WEAR_SHIELD        (1 << 9)  /* Can be used as a shield    */
#define ITEM_WEAR_ABOUT         (1 << 10) /* Can be worn about body     */
#define ITEM_WEAR_WAIST         (1 << 11) /* Can be worn around waist   */
#define ITEM_WEAR_WRIST         (1 << 12) /* Can be worn on wrist       */
#define ITEM_WEAR_WIELD         (1 << 13) /* Can be wielded             */
#define ITEM_WEAR_HOLD          (1 << 14) /* Can be held                */
#define ITEM_WEAR_EYES          (1 << 15) /* worn on eyes         	*/
#define ITEM_WEAR_EAR         	(1 << 16) /* can be worn on/in ear 	*/

/* extra object flags: used by obj_data.obj_flags.extra_flags */

#define ITEM_GLOW          (1 << 0)     /* Item is glowing              */
#define ITEM_HUM           (1 << 1)     /* Item is humming              */
#define ITEM_NORENT        (1 << 2)     /* Item cannot be rented        */
#define ITEM_NODONATE      (1 << 3)     /* Item cannot be donated       */
#define ITEM_NOINVIS       (1 << 4)     /* Item cannot be made invis    */
#define ITEM_INVISIBLE     (1 << 5)     /* Item is invisible            */
#define ITEM_MAGIC         (1 << 6)     /* Item is magical              */
#define ITEM_NODROP        (1 << 7)     /* Item is cursed: can't drop   */
#define ITEM_BLESS         (1 << 8)     /* Item is blessed              */
#define ITEM_NOSELL        (1 << 9)     /* Shopkeepers won't touch it   */
#define ITEM_CORPSE        (1 << 10)    /* Item is a corpse             */
#define ITEM_GODONLY       (1 << 11)    /* Only a god may use this item */
#define ITEM_TWOHANDS      (1 << 12)    /* weapon takes 2 hands to use */
#define ITEM_STARTER       (1 << 13)    /* REMOVE!!!! item is from character gen */
#define ITEM_VOLATILE      (1 << 14)    /* connected item loaded in ip zone */
#define ITEM_IMMLOAD       (1 << 15)    /* decays after timer runs out  */
/* always keep immload the last */

/* material type for item */
#define ITEM_NONE                 	0
#define ITEM_PLASTIC            	1  
#define ITEM_IRON                       2
#define ITEM_SILVER                     3

/* decking accessory types */

#define TYPE_FILE            0
#define TYPE_UPGRADE         1

/* types of cyberware for value[2] on a cyberware object */

#define CYB_DATAJACK            1

/* program types */

#define PROG_BOD                1 
#define PROG_EVASION            2 
#define PROG_MASKING            3 
#define PROG_SENSOR             4 
#define PROG_ATTACK             5 
#define PROG_SLOW               6
#define PROG_MEDIC              7
#define PROG_MIRRORS            8
#define PROG_SHIELD             9
#define PROG_SMOKE              10
#define PROG_ANALYZE            11
#define PROG_DECRYPT            12
#define PROG_DECEPTION          13
#define PROG_RELOCATE           14
#define PROG_SLEAZE             15


/* modifier constants used with obj affects ('A' fields) */

#define APPLY_NONE               0      /* No effect                    */
#define APPLY_BOD                1      /* Apply to Body                */
#define APPLY_QUI                2      /* Apply to Quickness           */
#define APPLY_STR                3      /* Apply to Strength            */
#define APPLY_CHA                4      /* Apply to Charisma            */
#define APPLY_INT                5      /* Apply to Intelligence        */
#define APPLY_WIL                6      /* Apply to Willpower           */
#define APPLY_ESS                7      /* Apply to Essence             */
#define APPLY_MAG                8      /* Apply to Magic               */
#define APPLY_REA                9      /* Apply to Reaction            */
#define APPLY_AGE               10      /* Apply to age                 */
#define APPLY_CHAR_WEIGHT       11      /* Apply to weight              */
#define APPLY_CHAR_HEIGHT       12      /* Apply to height              */
#define APPLY_MENTAL            13      /* Apply to max mental          */
#define APPLY_PHYSICAL          14      /* Apply to max physical points */
#define APPLY_MOVE              15      /* Apply to max move points     */
#define APPLY_BALLISTIC         16      /* Apply to Ballistic armor     */
#define APPLY_IMPACT            17      /* Apply to Impact armor rating */
#define APPLY_ASTRAL_POOL       18      /* Apply to Astral Pool         */
#define APPLY_DEFENSE_POOL      19      /* Apply to Defense Pool        */
#define APPLY_COMBAT_POOL       20      /* Apply to Dodge Pool          */
#define APPLY_HACKING_POOL      21      /* Apply to Hacking Pool        */
#define APPLY_MAGIC_POOL        22      /* Apply to Magic Pool          */
#define APPLY_INITIATIVE_DICE   23      /* Apply to Initiative Dice     */
#define APPLY_TARGET            24      /* Apply to Target Numbers      */

/* container flags - value[1] */

#define CONT_CLOSEABLE      (1 << 0)    /* Container can be closed      */
#define CONT_PICKPROOF      (1 << 1)    /* Container is pickproof       */
#define CONT_CLOSED         (1 << 2)    /* Container is closed          */
#define CONT_LOCKED         (1 << 3)    /* Container is locked          */

/* some different kind of liquids for use in values of drink containers */

#define LIQ_WATER      0
#define LIQ_BEER       1
#define LIQ_WINE       2
#define LIQ_ALE        3
#define LIQ_DARKALE    4
#define LIQ_WHISKY     5
#define LIQ_LEMONADE   6
#define LIQ_FIREBRT    7
#define LIQ_LOCALSPC   8 
#define LIQ_SLIME      9 
#define LIQ_MILK       10
#define LIQ_TEA        11
#define LIQ_COFFE      12
#define LIQ_BLOOD      13
#define LIQ_SALTWATER  14
#define LIQ_CLEARWATER 15
#define LIQ_TEQUILA    16
#define LIQ_HOTSAUCE   17

/* focus values */

#define VALUE_FOCUS_TYPE        0
#define VALUE_FOCUS_RATING      1
#define VALUE_FOCUS_CAT         2
#define VALUE_FOCUS_BONDED      5
/* #define VALUE_FOCUS_WEAPON_VNUM      7 */
#define VALUE_FOCUS_SPECIFY     8
#define VALUE_FOCUS_CHAR_IDNUM  9


/* types of foci */

#define FOCI_SPELL         0
#define FOCI_SPELL_CAT     1
#define FOCI_SPIRIT        2
#define FOCI_POWER         3
#define FOCI_LOCK          4
#define FOCI_WEAPON        5

/* ANTI-LAR ADDITION */

#define CHAN_SAY        0   
#define CHAN_EMOTE      1   
#define CHAN_NEWBIE     2   
#define CHAN_RADIO      3
#define CHAN_OOC        4
#define CHAN_OSAY       5
#define CHAN_WT         6
#define CHAN_WF         7
#define CHAN_TELL       8
#define CHAN_WHISPER    9
#define CHAN_TITLE      10  /* Only added as a CHAN for consistancy */
#define CHAN_SHOUT      11

/* End ANTI-LAR */

/* house value defines */
#define MAX_HOUSES      100
#define MAX_GUESTS      10
#define NORMAL_MAX_GUESTS    2
#define OBJS_PER_LIFESTYLE   35

#define HOUSE_LOW     0
#define HOUSE_MIDDLE  1
#define HOUSE_HIGH    2
#define HOUSE_LUXURY  3

/* alias defines */
#define ALIAS_SIMPLE    0
#define ALIAS_COMPLEX   1 

#define ALIAS_SEP_CHAR  ';'
#define ALIAS_VAR_CHAR  '$'
#define ALIAS_GLOB_CHAR '*'

/* Subcommands section: Originally from interpreter.h */

/* directions */
#define SCMD_NORTH      1
#define SCMD_NORTHEAST  2
#define SCMD_EAST       3
#define SCMD_SOUTHEAST  4
#define SCMD_SOUTH      5
#define SCMD_SOUTHWEST  6
#define SCMD_WEST       7
#define SCMD_NORTHWEST  8
#define SCMD_UP         9
#define SCMD_DOWN      10

/* do_gen_ps */
#define SCMD_INFO       0
#define SCMD_HANDBOOK   1
#define SCMD_CREDITS    2
#define SCMD_NEWS       3
#define SCMD_WIZLIST    4
#define SCMD_POLICIES   5
#define SCMD_VERSION    6
#define SCMD_IMMLIST    7
#define SCMD_MOTD       8
#define SCMD_IMOTD      9
#define SCMD_CLEAR      10
#define SCMD_WHOAMI     11

/* do_wizutil */
#define SCMD_REROLL     0
#define SCMD_PARDON     1
#define SCMD_NOTITLE    2
#define SCMD_SQUELCH    3
#define SCMD_FREEZE     4
#define SCMD_THAW       5
#define SCMD_UNAFFECT   6

/* do_say */
#define SCMD_SAY        0
#define SCMD_OSAY       1

/* do_spec_com */
#define SCMD_WHISPER    0
#define SCMD_ASK        1

/* do_gen_com */
#define SCMD_SHOUT      0
#define SCMD_NEWBIE     1
#define SCMD_OOC        2

/* do_last */
#define SCMD_LAST     0
#define SCMD_FINGER   1

/* do_shutdown */
#define SCMD_SHUTDOW    0
#define SCMD_SHUTDOWN   1

/* do_quit */
#define SCMD_QUI        0
#define SCMD_QUIT       1

/* do_date */
#define SCMD_DATE       0
#define SCMD_UPTIME     1

/* do disconnect */
#define SCMD_DISCONNECT    0
#define SCMD_MORTED        1

/* do wiztitle */
#define SCMD_WHOTITLE      0
#define SCMD_PRETITLE      1

/* do_commands */
#define SCMD_COMMANDS   0
#define SCMD_SOCIALS    1

/* do_drop */
#define SCMD_DROP       0
#define SCMD_JUNK       1
#define SCMD_DONATE     2
#define SCMD_UPLOAD 3

/* do_gen_write */
#define SCMD_BUG        0
#define SCMD_TYPO       1
#define SCMD_IDEA       2

/* do_look */
#define SCMD_LOOK       0
#define SCMD_READ       1

/* do_qcomm */
#define SCMD_QSAY       0
#define SCMD_QECHO      1

/* do_pour */
#define SCMD_POUR       0
#define SCMD_FILL       1

/* do_poof */
#define SCMD_POOFIN     0
#define SCMD_POOFOUT    1

/* do_astral */
#define SCMD_PROJECT       0
#define SCMD_PERCEIVE      1

/* do_hit */
#define SCMD_HIT        0
#define SCMD_MURDER     1
#define SCMD_KILL       2

/* do_eat */
#define SCMD_EAT        0
#define SCMD_TASTE      1
#define SCMD_DRINK      2
#define SCMD_SIP        3

/* do_use */
#define SCMD_USE        0
#define SCMD_QUAFF      1
#define SCMD_RECITE     2

/* do_echo */
#define SCMD_ECHO       0
#define SCMD_EMOTE      1
#define SCMD_XECHO      2
#define SCMD_XEMOTE     3

/* do_gen_door */
#define SCMD_OPEN       0
#define SCMD_CLOSE      1
#define SCMD_UNLOCK     2
#define SCMD_LOCK       3
#define SCMD_PICK       4

/* matrix subcommands */
#define SCMD_INSTALL    1
#define SCMD_UNINSTALL  2
#define SCMD_DOWNLOAD   3

/* do_skills */
#define SCMD_SKILLS     0
#define SCMD_ABILITIES  1

/* do_time */
#define SCMD_NORMAL     0
#define SCMD_PRECISE    1

/* END SUBCOMMANDS SECTION */

/* modes of connectedness: used by descriptor_data.state */

#define CON_PLAYING      0              /* Playing - Nominal state      */
#define CON_CLOSE        1              /* Disconnecting                */
#define CON_GET_NAME     2              /* By what name ..?             */
#define CON_NAME_CNFRM   3              /* Did I get that right, x?     */
#define CON_PASSWORD     4              /* Password:                    */
#define CON_NEWPASSWD    5              /* Give me a password for x     */
#define CON_CNFPASSWD    6              /* Please retype password:      */
#define CON_CCREATE      7
#define CON_RMOTD        8              /* PRESS RETURN after MOTD      */
#define CON_MENU         9              /* Your choice: (main menu)     */
#define CON_EXDESC       10             /* Enter a new description:     */
#define CON_CHPWD_GETOLD 11             /* Changing passwd: get old     */
#define CON_CHPWD_GETNEW 12             /* Changing passwd: get new     */
#define CON_CHPWD_VRFY   13             /* Verify new password          */
#define CON_DELCNF1      14             /* Delete confirmation 1        */
#define CON_DELCNF2      15             /* Delete confirmation 2        */
#define CON_QMENU        16             /* quit menu                    */
#define CON_QGETOLDPW    17
#define CON_QGETNEWPW    18
#define CON_QVERIFYPW    19
#define CON_QDELCONF1    20
#define CON_QDELCONF2    21
#define CON_SPELL_CREATE 22             /* Spell creation menus         */
#define CON_PCUSTOMIZE   23             /* customize persona description menu */
#define CON_ACUSTOMIZE   24             /* customize reflection description menu */
#define CON_IEDIT        25		/* olc edit mode */
#define CON_REDIT        26		/* olc edit mode */
#define CON_MEDIT        27
#define CON_QEDIT        28
#define CON_SHEDIT       29
#define CON_ZEDIT        30
#define CON_IDCONING     31            /* waiting for ident connection */
#define CON_IDCONED      32            /* ident connection complete    */
#define CON_IDREADING    33            /* waiting to read ident sock   */
#define CON_IDREAD       34            /* ident results read           */
#define CON_ASKNAME      35            /* Ask user for name            */
/* chargen connected modes */
#define CCR_AWAIT_CR    -1
#define CCR_SEX         0 
#define CCR_RACE        1
#define CCR_TYPE        2
#define CCR_ARCHETYPE   3
#define CCR_TOTEM       4
#define CCR_PRIORITY    5
#define CCR_ASSIGN      6
#define CCR_EQUIP       7
#define CCR_WEAPON      8
#define CCR_ARMOR       9
#define CCR_CYBERDECK   10
#define CCR_CYBERWARE   11
#define CCR_SPELLS      12
#define CCR_FORCE       13
#define CCR_TRADITION   14
/* priority choosing chargen modes */
#define PR_NONE         0
#define PR_ATTRIB       1
#define PR_MAGIC        2
#define PR_RESOURCE     3
#define PR_SKILL        4
#define PR_RACE         5

/* arbitrary constants used by index_boot() (must be unique) */
#define DB_BOOT_WLD     0
#define DB_BOOT_MOB     1
#define DB_BOOT_OBJ     2
#define DB_BOOT_ZON     3
#define DB_BOOT_SHP     4
#define DB_BOOT_QST     5

/* Defines for sending text */

#define TO_ROOM         1
#define TO_VICT         2
#define TO_NOTVICT      3
#define TO_CHAR         4
#define TO_ROLLS        5
#define TO_SLEEP        128     /* to char, even if sleeping */

/* Boards */

#define NUM_OF_BOARDS           22      /* change if needed! */
#define MAX_BOARD_MESSAGES      85      /* arbitrary -- change if needed */
#define MAX_MESSAGE_LENGTH      5120    /* arbitrary -- change if needed */
#define INDEX_SIZE         ((NUM_OF_BOARDS*MAX_BOARD_MESSAGES) + 5)

/* teacher modes */

#define NEWBIE          0
#define AMATEUR         1
#define ADVANCED        2

/* sun state for weather_data */

#define SUN_DARK        0
#define SUN_RISE        1
#define SUN_LIGHT       2
#define SUN_SET         3

/* sky conditions for weather_data */

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

/* rent codes */

#define RENT_UNDEF      0
#define RENT_CRASH      1
#define RENT_RENTED     2
#define RENT_CRYO       3
#define RENT_FORCED     4
#define RENT_TIMEDOUT   5

/* miscellaneous value defines */

#define OPT_USEC        100000  /* 10 passes per second */
#define PASSES_PER_SEC  (1000000 / OPT_USEC)
#define RL_SEC          * PASSES_PER_SEC

#define PULSE_ZONE      (10 RL_SEC)
#define PULSE_MOBILE    (10 RL_SEC)
#define PULSE_VIOLENCE  (1 RL_SEC)
#define PULSE_HTML              (30 RL_SEC)
#define PULSE_INITIATIVE (4 * PULSE_VIOLENCE)

#define SMALL_BUFSIZE           1024
#define LARGE_BUFSIZE           (12 * 1024)
#define GARBAGE_SPACE           32

#define MAX_STRING_LENGTH       8192
#define MAX_INPUT_LENGTH        256     /* Max length per *line* of input */
#define MAX_RAW_INPUT_LENGTH    512     /* Max size of *raw* input */
#define MAX_MESSAGES            100
#define MAX_NAME_LENGTH         20  /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_PWD_LENGTH          10  /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_TITLE_LENGTH        50  /* Used in char_file_u *DO*NOT*CHANGE* */
#define HOST_LENGTH             30  /* Used in char_file_u *DO*NOT*CHANGE* */
#define LINE_LENGTH             80  /* Used in char_file_u *DO*NOT*CHANGE* */
#define EXDSCR_LENGTH           400 /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_TONGUE              3   /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_SKILLS              200 /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_AFFECT              32  /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_OBJ_AFFECT          6 /* Used in obj_file_elem *DO*NOT*CHANGE* */
#define IDENT_LENGTH            8

/* ban struct */
struct ban_list_element {
   char site[BANNED_SITE_LENGTH+1];
   int  type;
   time_t date;
   char name[MAX_NAME_LENGTH+1];
   struct ban_list_element *next;
};

#endif