/* ****************************************
* 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_
#if !defined(WIN32) || defined(__CYGWIN__)
using namespace std;
#endif
#define NUM_RESERVED_DESCS 8
# ifdef DEBUG
# define _STLP_DEBUG 1
# else
# undef _STLP_DEBUG
# endif
/* 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_STUNNED 2 /* stunned */
#define POS_SLEEPING 3 /* sleeping */
#define POS_LYING 4
#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 0
#define QUI 1
#define STR 2
#define CHA 3
#define INT 4
#define WIL 5
#define REA 6
#define TBOD (1 << 0)
#define TQUI (1 << 1)
#define TSTR (1 << 2)
#define TCHA (1 << 3)
#define TINT (1 << 4)
#define TWIL (1 << 5)
#define TESS (1 << 6)
#define TREA (1 << 7)
#define TMAG (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 AT_RIGGER 5
#define NUM_ATS 6 /* 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
/* new totems*/
#define TOTEM_BADGER 15
#define TOTEM_BAT 16
#define TOTEM_BOAR 17
#define TOTEM_BULL 18
#define TOTEM_CHEETAH 19
#define TOTEM_COBRA 20
#define TOTEM_CRAB 21
#define TOTEM_CROCODILE 22
#define TOTEM_DOVE 23
#define TOTEM_ELK 24
#define TOTEM_FISH 25
#define TOTEM_FOX 26
#define TOTEM_GECKO 27
#define TOTEM_GOOSE 28
#define TOTEM_HORSE 29
#define TOTEM_HYENA 30
#define TOTEM_JACKAL 31
#define TOTEM_JAGUAR 32
#define TOTEM_LEOPARD 33
#define TOTEM_LIZARD 34
#define TOTEM_MONKEY 35
#define TOTEM_OTTER 37
#define TOTEM_PARROT 38
#define TOTEM_POLECAT 39
#define TOTEM_PRARIEDOG 40
#define TOTEM_PUMA 41
#define TOTEM_SCORPION 42
#define TOTEM_SPIDER 43
#define TOTEM_STAG 44
#define TOTEM_TURTLE 45
#define TOTEM_WHALE 46
#define TOTEM_MOON 47
#define TOTEM_MOUNTAIN 48
#define TOTEM_OAK 49
#define TOTEM_SEA 50
#define TOTEM_STREAM 51
#define TOTEM_SUN 52
#define TOTEM_WIND 53
/* PC races */
#define RACE_UNDEFINED 1
#define RACE_HUMAN 2
#define RACE_DWARF 3
#define RACE_ELF 4
#define RACE_ORK 5
#define RACE_TROLL 6
#define RACE_CYCLOPS 7
#define RACE_KOBOROKURU 8
#define RACE_FOMORI 9
#define RACE_MENEHUNE 10
#define RACE_HOBGOBLIN 11
#define RACE_GIANT 12
#define RACE_GNOME 13
#define RACE_ONI 14
#define RACE_WAKYAMBI 15
#define RACE_OGRE 16
#define RACE_MINOTAUR 17
#define RACE_SATYR 18
#define RACE_NIGHTONE 19
#define RACE_DRYAD 20
#define RACE_DRAGON 21
#define NUM_RACES 21 /* This must be the number of races */
/* level definitions */
enum {
LVL_MORTAL = 1,
LVL_BUILDER,
LVL_ARCHITECT,
LVL_FIXER,
LVL_CONSPIRATOR,
LVL_EXECUTIVE,
LVL_DEVELOPER,
LVL_VICEPRES,
LVL_ADMIN,
LVL_PRESIDENT,
LVL_MAX = LVL_PRESIDENT,
LVL_FREEZE = LVL_EXECUTIVE
};
/* 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_HEAD 1
#define WEAR_EYES 2
#define WEAR_EAR 3
#define WEAR_EAR2 4
#define WEAR_FACE 5
#define WEAR_NECK_1 6
#define WEAR_NECK_2 7
#define WEAR_BACK 8
#define WEAR_ABOUT 9
#define WEAR_BODY 10
#define WEAR_UNDER 11
#define WEAR_ARMS 12
#define WEAR_LARM 13
#define WEAR_RARM 14
#define WEAR_WRIST_R 15
#define WEAR_WRIST_L 16
#define WEAR_HANDS 17
#define WEAR_WIELD 18
#define WEAR_HOLD 19
#define WEAR_SHIELD 20
#define WEAR_FINGER_R 21
#define WEAR_FINGER_L 22
#define WEAR_FINGER3 23
#define WEAR_FINGER4 24
#define WEAR_FINGER5 25
#define WEAR_FINGER6 26
#define WEAR_FINGER7 27
#define WEAR_FINGER8 28
#define WEAR_BELLY 29
#define WEAR_WAIST 30
#define WEAR_LEGS 31
#define WEAR_LANKLE 32
#define WEAR_RANKLE 33
#define WEAR_SOCK 34
#define WEAR_FEET 35
#define WEAR_PATCH 36
#define NUM_WEARS 37
// Old wear positions for item file conversios
#define OLD_WEAR_LIGHT 0
#define OLD_WEAR_FINGER_R 1
#define OLD_WEAR_FINGER_L 2
#define OLD_WEAR_NECK_1 3
#define OLD_WEAR_NECK_2 4
#define OLD_WEAR_BODY 5
#define OLD_WEAR_HEAD 6
#define OLD_WEAR_LEGS 7
#define OLD_WEAR_FEET 8
#define OLD_WEAR_HANDS 9
#define OLD_WEAR_ARMS 10
#define OLD_WEAR_SHIELD 11
#define OLD_WEAR_ABOUT 12
#define OLD_WEAR_WAIST 13
#define OLD_WEAR_WRIST_R 14
#define OLD_WEAR_WRIST_L 15
#define OLD_WEAR_WIELD 16
#define OLD_WEAR_HOLD 17
#define OLD_WEAR_EYES 18
#define OLD_WEAR_EAR 19
#define OLD_WEAR_EAR2 20
#define OLD_WEAR_UNDER 21
#define OLD_WEAR_BACK 22
#define OLD_WEAR_LANKLE 23
#define OLD_WEAR_RANKLE 24
#define OLD_WEAR_SOCK 25
#define OLD_WEAR_FINGER3 26
#define OLD_WEAR_FINGER4 27
#define OLD_WEAR_FINGER5 28
#define OLD_WEAR_FINGER6 29
#define OLD_WEAR_FINGER7 30
#define OLD_WEAR_FINGER8 31
#define OLD_WEAR_BELLY 32
#define OLD_WEAR_LARM 33
#define OLD_WEAR_RARM 34
#define OLD_WEAR_PATCH 35
#define OLD_NUM_WEARS 36
/* player flags: used by char_data.char_specials.act */
#define PLR_KILLER 0 /* Player is a player-killer */
#define PLR_FROZEN 2 /* Player is frozen */
#define PLR_DONTSET 3 /* Don't EVER set (ISNPC bit) */
#define PLR_NEWBIE 4 /* Player is a newbie still */
#define PLR_JUST_DIED 5 /* Player just died */
#define PLR_CRASH 6 /* Player needs to be crash-saved */
#define PLR_SITEOK 8 /* Player has been site-cleared */
#define PLR_NOSHOUT 9 /* Player not allowed to shout/goss */
#define PLR_NOTITLE 10 /* Player not allowed to set title */
#define PLR_DELETED 11 /* Player deleted - space reusable */
#define PLR_NODELETE 12 /* Player shouldn't be deleted */
#define PLR_PACKING 13 /* Player shouldn't be on wizlist */
#define PLR_NOSTAT 14 /* Player cannot be statted, etc */
#define PLR_LOADROOM 15 /* Player uses nonstandard loadroom */
#define PLR_INVSTART 16 /* Player should enter game wizinvis */
#define PLR_OLC 19 /* Player has access to olc commands */
#define PLR_MATRIX 20 /* Player is in the Matrix */
#define PLR_PERCEIVE 21 /* player is astrally perceiving */
#define PLR_PROJECT 22 /* player is astrally projecting */
#define PLR_SWITCHED 23 /* player is switched to a mob */
#define PLR_WRITING 24 /* Player writing (board/mail/olc) */
#define PLR_MAILING 25 /* Player is writing mail */
#define PLR_EDITING 26 /* Player is zone editing */
#define PLR_SPELL_CREATE 27 /* Player is creating a spell */
#define PLR_CUSTOMIZE 28 /* Player is customizing persona */
#define PLR_NOSNOOP 29 /* Player is not snoopable */
#define PLR_WANTED 30 /* Player wanted by the law */
#define PLR_NOOOC 31 /* Player is muted from the OOC channel */
#define PLR_AUTH 32 /* Player needs Auth */
#define PLR_EDCON 33
#define PLR_REMOTE 34
#define PLR_PG 35 /* Player is a power gamer */
#define PLR_DRIVEBY 36
#define PLR_RPE 37
#define PLR_MAX 38
/* mobile flags: used by char_data.char_specials.act */
#define MOB_SPEC 0 /* Mob has a callable spec-proc */
#define MOB_SENTINEL 1 /* Mob should not move */
#define MOB_SCAVENGER 2 /* Mob picks up stuff on the ground */
#define MOB_ISNPC 3 /* (R) Automatically set on all Mobs */
#define MOB_AWARE 4 /* Mob can't be backstabbed */
#define MOB_AGGRESSIVE 5 /* Mob hits players in the room */
#define MOB_STAY_ZONE 6 /* Mob shouldn't wander out of zone */
#define MOB_WIMPY 7 /* Mob flees if severely injured */
#define MOB_AGGR_ORK 8 /* auto attack ork PC's */
#define MOB_AGGR_ELF 9 /* auto attack elf PC's */
#define MOB_AGGR_DWARF 10 /* auto attack dwarf PC's */
#define MOB_MEMORY 11 /* remember attackers if attacked */
#define MOB_HELPER 12 /* attack PCs fighting other NPCs */
#define MOB_NOCHARM 13 /* Mob can't be charmed */
#define MOB_DUAL_NATURE 14 /* mob is dual-natured */
#define MOB_IMMEXPLODE 15 /* mob is immune to explosions */
#define MOB_AGGR_TROLL 16 /* auto attack troll PC's */
#define MOB_NOBLIND 17 /* Mob can't be blinded */
#define MOB_ASTRAL 18 /* Mob is solely in the astral plane */
#define MOB_GUARD 19 /* mob carries out security */
#define MOB_AGGR_HUMAN 20 /* auto attack human PC's */
#define MOB_SNIPER 21 /* mob searches area for PCs */
#define MOB_PRIVATE 22 /* mob cannot be statted */
#define MOB_TRACK 23 /* (R) for security routines */
/* New Flags added by WASHU*/
#define MOB_LONESTAR 24 /* Lone Star Cops */
#define MOB_KNIGHT_ERRENT 25 /* Knight Errent Security */
#define MOB_SAEDER_KRUPP 26 /* Saeder Krupp*/
#define MOB_TIR_SECURITY 27 /* Tir Security Forces */
#define MOB_AZTECHNOLOGY 28 /* Azzies */
#define MOB_RENRAKU 29 /* Renraku */
#define MOB_NOKILL 30 /* Unkillable mob */
/* New Race(s)! -- Khepri is a dumb slut */
#define MOB_AGGR_DRAGON 31 /* auto attack dragon PCs */
#define MOB_INANIMATE 32
#define MOB_MAX 33
/* preference flags: used by char_data.player_specials.pref */
#define PRF_PACIFY 0 /* Room descs won't normally be shown */
#define PRF_COMPACT 1 /* No extra CRLF pair before prompts */
#define PRF_AUTOEXIT 2 /* Display exits in a room */
#define PRF_FIGHTGAG 3 /* Gag extra fight messages */
#define PRF_MOVEGAG 4 /* Gag extra movement messages */
#define PRF_DEAF 5 /* Can't hear shouts */
#define PRF_NOTELL 6 /* Can't receive tells */
#define PRF_NORADIO 7 /* Can't hear radio frequencies */
#define PRF_NONEWBIE 8 /* Can't hear newbie channel */
#define PRF_NOREPEAT 9 /* No repetition of comm commands */
#define PRF_NOWIZ 10 /* Can't hear wizline */
#define PRF_PKER 11 /* is able to pk/be pked */
#define PRF_QUEST 12 /* On quest */
#define PRF_AFK 13 /* Afk */
#define PRF_COLOR_1 14 /* Color (low bit) */
#define PRF_COLOR_2 15 /* Color (high bit) */
#define PRF_NOHASSLE 16 /* Aggr mobs won't attack */
#define PRF_ROOMFLAGS 17 /* Can see room flags (ROOM_x) */
#define PRF_HOLYLIGHT 18 /* Can see in dark */
#define PRF_CONNLOG 19 /* Views ConnLog */
#define PRF_DEATHLOG 20 /* Views DeathLog */
#define PRF_MISCLOG 21 /* Views MiscLog */
#define PRF_WIZLOG 22 /* Views WizLog */
#define PRF_SYSLOG 23 /* Views SysLog */
#define PRF_ZONELOG 24 /* Views ZoneLog */
#define PRF_MSP 25 /* has enabled MSP */
#define PRF_ROLLS 26 /* sees details on rolls */
#define PRF_NOOOC 27 /* can't hear ooc channel */
#define PRF_AUTOINVIS 28 /* to toggle auto-invis for immortals */
#define PRF_CHEATLOG 29 /* Views CheatLog */
#define PRF_ASSIST 30 /* auto assist */
#define PRF_BANLOG 31
#define PRF_NORPE 32
#define PRF_NOHIRED 33
#define PRF_GRIDLOG 34
#define PRF_WRECKLOG 35
#define PRF_QUESTOR 36
#define PRF_MAX 37
/* 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
#define LOG_CHEATLOG 6
#define LOG_WIZITEMLOG 7
#define LOG_BANLOG 8
#define LOG_GRIDLOG 9
#define LOG_WRECKLOG 10
/* 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_INVISIBLE 1 /* Char is invisible */
#define AFF_DETECT_ALIGN 2 /* Char is sensitive to align */
#define AFF_DETECT_INVIS 3 /* Char can see invis chars */
#define AFF_DETECT_MAGIC 4 /* Char is sensitive to magic */
#define AFF_SENSE_LIFE 5 /* Char can sense hidden life */
#define AFF_WATERWALK 6 /* Char can walk on water */
#define AFF_GROUP 7 /* (R) Char is grouped */
#define AFF_CURSE 8 /* Char is cursed */
#define AFF_INFRAVISION 9 /* Char can see in dark */
#define AFF_POISON 10 /* (R) Char is poisoned */
#define AFF_SLEEP 11 /* (R) Char magically asleep */
#define AFF_NOTRACK 12 /* Char can't be tracked */
#define AFF_LOW_LIGHT 13 /* Char has low light eyes */
#define AFF_LASER_SIGHT 14 /* Char using laser sight */
#define AFF_SNEAK 15 /* Char can move quietly */
#define AFF_HIDE 16 /* Char is hidden */
#define AFF_VISION_MAG_1 17 /* Magnification level 1 */
#define AFF_CHARM 18 /* Char is charmed */
#define AFF_ACTION 19 /* Player gets -10 on next init roll */
#define AFF_VISION_MAG_2 20 /* Magnification level 2 */
#define AFF_VISION_MAG_3 21 /* Magnification level 3 */
#define AFF_COUNTER_ATT 22 /* plr just attacked */
#define AFF_STABILIZE 23 /* player won't die due to phys loss */
#define AFF_PETRIFY 24 /* player's commands don't work */
#define AFF_IMP_INVIS 25 /* char is improved invis */
#define AFF_BLIND 26 /* (R) Char is blind */
#define AFF_APPROACH 27 /* Character is using melee */
#define AFF_PILOT 28 /* Char is piloting a vehicle */
#define AFF_RIG 29
#define AFF_MANNING 30 /* Char is in a (mini)turret */
#define AFF_DESIGN 31
#define AFF_PROGRAM 32
#define AFF_MAX 33
/* 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 NUM_OF_DIRS 10 /* 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 0 /* Dark */
#define ROOM_DEATH 1 /* Death trap */
#define ROOM_NOMOB 2 /* MOBs not allowed */
#define ROOM_INDOORS 3 /* Indoors */
#define ROOM_PEACEFUL 4 /* Violence not allowed */
#define ROOM_SOUNDPROOF 5 /* Shouts, gossip blocked */
#define ROOM_NOTRACK 6 /* Track won't go through */
#define ROOM_NOMAGIC 7 /* Magic not allowed */
#define ROOM_TUNNEL 8 /* room for only 1 pers */
#define ROOM_PRIVATE 9 /* Can't teleport in */
#define ROOM_LIT 10 /* Room has a streetlight */
#define ROOM_HOUSE 11 /* (R) Room is a house */
#define ROOM_HOUSE_CRASH 12 /* (R) House needs saving */
#define ROOM_ATRIUM 13 /* (R) The door to a house */
#define ROOM_OLC 14 /* (R) Modifyable/!compress */
#define ROOM_BFS_MARK 15 /* (R) breath-first srch mrk */
#define ROOM_LOW_LIGHT 16 /* Room viewable with ll-eyes */
#define ROOM_NO_RADIO 18 /* Radio is sketchy and phones dont work */
#define ROOM_HERMETIC_LIBRARY 19 /* Room is spell library */
#define ROOM_MEDICINE_LODGE 20 /* Room is a medicin lodge */
#define ROOM_FALL 21 // room is a 'fall' room
#define ROOM_ROAD 22
#define ROOM_GARAGE 23
#define ROOM_SENATE 24
#define ROOM_NOQUIT 25
#define ROOM_SENT 26
#define ROOM_ASTRAL 27 // Astral room
#define ROOM_NOGRID 28
#define ROOM_STORAGE 29
#define ROOM_MAX 30
/* 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! */
/* npc types */
#define CLASS_OTHER 0
#define CLASS_SPIRIT 1
#define CLASS_HUMANOID 2
#define CLASS_ANIMAL 3
#define CLASS_DRAGON 4
/* 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
/* 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
#define SPELL_ALLEVIATE_ALLERGY 57
#define SPELL_DECREASE_REFLEXES 58
#define SPELL_CAMOFLAUGE 59
#define SPELL_STEALTH 60
/* new spells can be added here */
/* spirit powers */
#define SPELL_FEAR 81
#define SPELL_ENGULF 82
#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
#define SKILL_ATHLETICS 1
#define SKILL_ARMED_COMBAT 2
#define SKILL_EDGED_WEAPONS 3
#define SKILL_POLE_ARMS 4
#define SKILL_WHIPS_FLAILS 5
#define SKILL_CLUBS 6
#define SKILL_UNARMED_COMBAT 7
#define SKILL_GRAPPLE 8
#define SKILL_CYBER_IMPLANTS 9
#define SKILL_FIREARMS 10
#define SKILL_PISTOLS 11
#define SKILL_RIFLES 12
#define SKILL_SHOTGUNS 13
#define SKILL_ASSAULT_RIFLES 14
#define SKILL_SMG 15
#define SKILL_GRENADE_LAUNCHERS 16
#define SKILL_TASERS 17
#define SKILL_GUNNERY 18
#define SKILL_MACHINE_GUNS 19
#define SKILL_MISSILE_LAUNCHERS 20
#define SKILL_ASSAULT_CANNON 21
#define SKILL_ARTILLERY 22
#define SKILL_PROJECTILES 23
#define SKILL_BOWS 24
#define SKILL_CROSSBOWS 25
#define SKILL_THROWING_WEAPONS 26
#define SKILL_NONAERODYNAMIC 27
#define SKILL_CYBETERM_DESIGN 28
#define SKILL_DEMOLITIONS 29
#define SKILL_COMPUTER 30
#define SKILL_ELECTRONICS 31
#define SKILL_BR_COMPUTER 32
#define SKILL_BIOTECH 33
#define SKILL_MEDICAL 34
#define SKILL_CYBERSURGERY 35
#define SKILL_BIOLOGY 36
#define SKILL_LEADERSHIP 37
#define SKILL_INTERROGATION 38
#define SKILL_NEGOTIATION 39
#define SKILL_MAGICAL_THEORY 40
#define SKILL_CONJURING 41
#define SKILL_SORCERY 42
#define SKILL_SHAMANIC_STUDIES 43
#define SKILL_CORPORATE_ETIQUETTE 44
#define SKILL_MEDIA_ETIQUETTE 45
#define SKILL_STREET_ETIQUETTE 46
#define SKILL_TRIBAL_ETIQUETTE 47
#define SKILL_ELF_ETIQUETTE 48
#define SKILL_PROGRAM_COMBAT 49
#define SKILL_PROGRAM_DEFENSIVE 50
#define SKILL_PROGRAM_OPERATIONAL 51
#define SKILL_PROGRAM_SPECIAL 52
#define SKILL_PROGRAM_CYBERTERM 53
#define SKILL_DATA_BROKERAGE 54
#define SKILL_AURA_READING 55
#define SKILL_STEALTH 56
#define SKILL_STEAL 57
#define SKILL_TRACK 58
#define SKILL_CLIMBING 59 /* concentration of athletics */
#define SKILL_PILOT_BIKE 60
#define SKILL_PILOT_FIXED_WING 61
#define SKILL_PILOT_CAR 62
#define SKILL_PILOT_TRUCK 63
#define SKILL_BR_BIKE 64
#define SKILL_BR_CAR 65
#define SKILL_BR_DRONE 66
#define SKILL_BR_TRUCK 67
#define SKILL_PILOT_SUBMARINE 68
#define SKILL_PILOT_VECTORTHURST 69
#define SKILL_ENGLISH 70
#define SKILL_SPERETHIEL 71
#define SKILL_SPANISH 72
#define SKILL_JAPANESE 73
#define SKILL_CHINESE 74
#define SKILL_KOREAN 75
#define SKILL_ITALIAN 76
#define SKILL_RUSSIAN 77
#define SKILL_SIOUX 78
#define SKILL_MAKAW 79
#define SKILL_CROW 80
#define SKILL_SALISH 81
#define SKILL_UTE 82
#define SKILL_NAVAJO 83
#define SKILL_GERMAN 84
#define MAX_SKILLS 85
#define ADEPT_PERCEPTION 1
#define ADEPT_COMBAT_SENSE 2
#define ADEPT_BLIND_FIGHTING 3
#define ADEPT_QUICK_STRIKE 4
#define ADEPT_KILLING_HANDS 5
#define ADEPT_NERVE_STRIKE 6
#define ADEPT_SMASHING_BLOW 7
#define ADEPT_DISTANCE_STRIKE 8
#define ADEPT_REFLEXES 9
#define ADEPT_BOOST_STR 10
#define ADEPT_BOOST_QUI 11
#define ADEPT_BOOST_BOD 12
#define ADEPT_IMPROVED_STR 13
#define ADEPT_IMPROVED_QUI 14
#define ADEPT_IMPROVED_BOD 15
#define ADEPT_IMPROVED_PERCEPT 16
#define ADEPT_LOW_LIGHT 17
#define ADEPT_THERMO 18
#define ADEPT_IMAGE_MAG 19
#define ADEPT_MAGIC_RESISTANCE 20
#define ADEPT_PAIN_RESISTANCE 21
#define ADEPT_TEMPERATURE_TOLERANCE 22
#define ADEPT_SPELL_SHROUD 23
#define ADEPT_TRUE_SIGHT 24
#define ADEPT_MISSILE_PARRY 25
#define ADEPT_MISSILE_MASTERY 26
#define ADEPT_MYSTIC_ARMOUR 27
#define ADEPT_HEALING 28
#define ADEPT_FREEFALL 29
#define ADEPT_IRONWILL 30
#define ADEPT_NUMPOWER 31
/* 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
#define TYPE_CRASH 328
#define TYPE_DUMPSHOCK 329
#define TYPE_BLACKIC 330
/* 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
#define TYPE_RAM 407
/* 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
#define SPELL_EFFECT_ALLEVIATE_ALLERGY 20
#define SPELL_EFFECT_DECREASE_REFLEX 21
/* 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
#define SPELL_EFFECT_CAMO 5
#define SPELL_EFFECT_STEALTH 6
/* 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_WORKSHOP 2 /* Item is a scroll */
#define ITEM_CAMERA 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_GYRO 9 /* Item is Gyroscopic Harness */
#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 */
#define ITEM_RCDECK 36
#define ITEM_CHIP 37
#define ITEM_MOD 38
#define ITEM_HOLSTER 39
#define ITEM_DESIGN 40
/* take/wear flags: used by obj_data.obj_flags.wear_flags */
#define ITEM_WEAR_TAKE 0 /* Item can be takes */
#define ITEM_WEAR_FINGER 1 /* Can be worn on finger */
#define ITEM_WEAR_NECK 2 /* Can be worn around neck */
#define ITEM_WEAR_BODY 3 /* Can be worn on body */
#define ITEM_WEAR_HEAD 4 /* Can be worn on head */
#define ITEM_WEAR_LEGS 5 /* Can be worn on legs */
#define ITEM_WEAR_FEET 6 /* Can be worn on feet */
#define ITEM_WEAR_HANDS 7 /* Can be worn on hands */
#define ITEM_WEAR_ARMS 8 /* Can be worn on arms */
#define ITEM_WEAR_SHIELD 9 /* Can be used as a shield */
#define ITEM_WEAR_ABOUT 10 /* Can be worn about body */
#define ITEM_WEAR_WAIST 11 /* Can be worn around waist */
#define ITEM_WEAR_WRIST 12 /* Can be worn on wrist */
#define ITEM_WEAR_WIELD 13 /* Can be wielded */
#define ITEM_WEAR_HOLD 14 /* Can be held */
#define ITEM_WEAR_EYES 15 /* worn on eyes */
#define ITEM_WEAR_EAR 16 /* can be worn on/in ear */
#define ITEM_WEAR_UNDER 17
#define ITEM_WEAR_BACK 18
#define ITEM_WEAR_ANKLE 19
#define ITEM_WEAR_SOCK 20
#define ITEM_WEAR_BELLY 21
#define ITEM_WEAR_ARM 22
#define ITEM_WEAR_FACE 23
#define ITEM_WEAR_MAX 24
/* extra object flags: used by obj_data.obj_flags.extra_flags */
#define ITEM_GLOW 0 /* Item is glowing */
#define ITEM_HUM 1 /* Item is humming */
#define ITEM_NORENT 2 /* Item cannot be rented */
#define ITEM_NODONATE 3 /* Item cannot be donated */
#define ITEM_NOINVIS 4 /* Item cannot be made invis */
#define ITEM_INVISIBLE 5 /* Item is invisible */
#define ITEM_MAGIC 6 /* Item is magical */
#define ITEM_NODROP 7 /* Item is cursed: can't drop */
#define ITEM_BLESS 8 /* Item is blessed */
#define ITEM_NOSELL 9 /* Shopkeepers won't touch it */
#define ITEM_CORPSE 10 /* Item is a corpse */
#define ITEM_GODONLY 11 /* Only a god may use this item */
#define ITEM_TWOHANDS 12 /* weapon takes 2 hands to use */
#define ITEM_STARTER 13 /* REMOVE!!!! item is from character gen */
#define ITEM_VOLATILE 14 /* connected item loaded in ip zone */
#define ITEM_WIZLOAD 15 /* item was loaded by an immortal */
#define ITEM_NOTROLL 16
#define ITEM_NOELF 17
#define ITEM_NODWARF 18
#define ITEM_NOORK 19
#define ITEM_NOHUMAN 20
#define ITEM_SNIPER 21
#define ITEM_IMMLOAD 22 /* decays after timer runs out */
#define ITEM_EXTRA_MAX 23
/* always keep immload the last */
/* Ammo types */
#define AMMO_NORMAL 0
#define AMMO_APDS 1
#define AMMO_EXPLOSIVE 2
#define AMMO_EX 3
#define AMMO_FLECHETTE 4
#define AMMO_GEL 5
/* 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
#define TYPE_COMPUTER 2
#define TYPE_PARTS 3
#define TYPE_COOKER 4
/* vehicle types table */
#define VEH_DRONE 0
#define VEH_BIKE 1
#define VEH_CAR 2
#define VEH_TRUCK 3
#define VEH_FIXEDWING 4
#define VEH_ROTORCRAFT 5
#define VEH_VECTORTHRUST 6
#define VEH_HOVERCRAFT 7
#define VEH_MOTORBOAT 8
#define VEH_SHIP 9
#define VEH_LTA 10
/* vehicle affection table */
#define VAFF_NONE 0
#define VAFF_HAND 1
#define VAFF_SPD 2
#define VAFF_ACCL 3
#define VAFF_BOD 4
#define VAFF_ARM 5
#define VAFF_SIG 6
#define VAFF_AUTO 7
#define VAFF_SEA 8
#define VAFF_LOAD 9
#define VAFF_SEN 10
#define VAFF_PILOT 11
#define VAFF_MAX 12
/* vehicle flag table */
#define VFLAG_NONE 0
#define VFLAG_CAN_FLY 1
#define VFLAG_AMPHIB 2
/* vehicle speed table */
#define SPEED_OFF 0
#define SPEED_IDLE 1
#define SPEED_CRUISING 2
#define SPEED_SPEEDING 3
#define SPEED_MAX 4
/* types of cyberware for value[2] on a cyberware object */
#define CYB_DATAJACK 1
/* program types */
#define SOFT_BOD 1
#define SOFT_EVASION 2
#define SOFT_MASKING 3
#define SOFT_SENSOR 4
#define SOFT_ATTACK 5
#define SOFT_SLOW 6
#define SOFT_MEDIC 7
#define SOFT_SNOOPER 8
#define SOFT_BATTLETEC 9
#define SOFT_COMPRESSOR 10
#define SOFT_ANALYZE 11
#define SOFT_DECRYPT 12
#define SOFT_DECEPTION 13
#define SOFT_RELOCATE 14
#define SOFT_SLEAZE 15
#define SOFT_SCANNER 16
#define SOFT_BROWSE 17
#define SOFT_READ 18
#define SOFT_TRACK 19
#define SOFT_ARMOUR 20
#define SOFT_CAMO 21
#define SOFT_CRASH 22
#define SOFT_DEFUSE 23
#define SOFT_EVALUATE 24
#define SOFT_VALIDATE 25
#define SOFT_SWERVE 26
#define SOFT_SUITE 27
#define SOFT_COMMLINK 28
#define SOFT_CLOAK 29
#define SOFT_LOCKON 30
#define NUM_PROGRAMS 31
/* 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 */
#define APPLY_CONTROL_POOL 25
#define APPLY_MAX 26
/* 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 */
/* New and improved liquids by Jordan */
#define LIQ_WATER 0
#define LIQ_SODA 1
#define LIQ_COFFEE 2
#define LIQ_MILK 3
#define LIQ_JUICE 4
#define LIQ_TEA 5
#define LIQ_SOYKAF 6
#define LIQ_SMOOTHIE 7
#define LIQ_SPORTS 8
#define LIQ_ESPRESSO 9
#define LIQ_BEER 10
#define LIQ_ALE 11
#define LIQ_LAGER 12
#define LIQ_IMPORTBEER 13
#define LIQ_MICROBREW 14
#define LIQ_MALTLIQ 15
#define LIQ_COCKTAIL 16
#define LIQ_MARGARITA 17
#define LIQ_LIQUOR 18
#define LIQ_EVERCLEAR 19
#define LIQ_VODKA 20
#define LIQ_TEQUILA 21
#define LIQ_BRANDY 22
#define LIQ_RUM 23
#define LIQ_WHISKEY 24
#define LIQ_GIN 25
#define LIQ_CHAMPAGNE 26
#define LIQ_REDWINE 27
#define LIQ_WHITEWINE 28
#define LIQ_BLOOD 29
#define LIQ_HOTSAUCE 30
#define LIQ_PISS 31
#define LIQ_LOCAL 32
#define LIQ_FUCKUP 33
/* 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
/* Vehicle mods */
#define MOD_SUSPENSION 0
#define MOD_ENGINE 1
#define MOD_STEERING 2
#define MOD_TIRES 3
#define MOD_BRAKES 4
#define MOD_PLATING 5
#define MOD_COMP 6
#define MOD_PHONE 7
#define MOD_SENSOR 8
#define MOD_ECM 9
#define MOD_IGNITION 10
#define MOD_ALARM 11
#define MOD_SEAT 12
#define MOD_BODY 13
#define MOD_RADIO 14
#define MOD_MOUNT 15
#define NUM_MODS 16
/* 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
/* #define SCMD_OUT 11 for vehicles, not rooms */
/* do_gen_ps */
#define SCMD_INFO 0
#define SCMD_HANDBOOK 1
#define SCMD_CREDITS 2
#define SCMD_NEWS 3
#define SCMD_POLICIES 4
#define SCMD_VERSION 5
#define SCMD_IMMLIST 6
#define SCMD_MOTD 7
#define SCMD_IMOTD 8
#define SCMD_CLEAR 9
#define SCMD_WHOAMI 10
/* do_wizutil */
#define SCMD_PARDON 0
#define SCMD_NOTITLE 1
#define SCMD_SQUELCH 2
#define SCMD_FREEZE 3
#define SCMD_THAW 4
#define SCMD_UNAFFECT 5
#define SCMD_SQUELCHOOC 6
#define SCMD_INITIATE 7
#define SCMD_PG 8
#define SCMD_RPE 9
#define SCMD_POWERPOINT 10
/* do_say */
#define SCMD_SAY 0
#define SCMD_OSAY 1
#define SCMD_SAYTO 2
/* 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
#define SCMD_RPETALK 3
#define SCMD_HIREDTALK 4
/* 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
/* 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
/* do_echo */
#define SCMD_ECHO 0
#define SCMD_EMOTE 1
#define SCMD_AECHO 3
/* do_gen_door */
#define SCMD_OPEN 0
#define SCMD_CLOSE 1
#define SCMD_UNLOCK 2
#define SCMD_LOCK 3
#define SCMD_PICK 4
#define SCMD_KNOCK 5
/* matrix subcommands */
#define SCMD_INSTALL 1
#define SCMD_UNINSTALL 2
/* do_skills */
#define SCMD_SKILLS 0
#define SCMD_ABILITIES 1
/* do_time */
#define SCMD_NORMAL 0
#define SCMD_PRECISE 1
/* do_subscribe */
#define SCMD_SUB 0
#define SCMD_UNSUB 1
/* do_phone */
#define SCMD_RING 1
#define SCMD_HANGUP 2
#define SCMD_TALK 3
#define SCMD_ANSWER 4
/* do_man */
#define SCMD_UNMAN 1
/* do_load */
#define SCMD_SWAP 0
#define SCMD_UPLOAD 1
#define SCMD_UNLOAD 2
/* 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_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_FCUSTOMIZE 25
#define CON_VEDIT 26
#define CON_IEDIT 27 /* olc edit mode */
#define CON_REDIT 28 /* olc edit mode */
#define CON_MEDIT 29
#define CON_QEDIT 30
#define CON_SHEDIT 31
#define CON_ZEDIT 32
#define CON_HEDIT 33
#define CON_ICEDIT 34
#define CON_PRO_CREATE 35
#define CON_IDCONING 36 /* waiting for ident connection */
#define CON_IDCONED 37 /* ident connection complete */
#define CON_IDREADING 38 /* waiting to read ident sock */
#define CON_IDREAD 39 /* ident results read */
#define CON_ASKNAME 40 /* 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_TRADITION 15
/* 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
#define DB_BOOT_VEH 6
#define DB_BOOT_MTX 7
#define DB_BOOT_IC 8
/* 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_VEH 6
#define TO_DECK 7
#define TO_SLEEP 128 /* to char, even if sleeping */
/* Boards */
#define NUM_OF_BOARDS 24 /* change if needed! */
#define MAX_BOARD_MESSAGES 300 /* 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
#define MOON_NEW 0
#define MOON_WAX 1
#define MOON_FULL 2
#define MOON_WANE 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
/* MATRIX HOSTS TYPES */
#define HOST_DATASTORE 0
#define HOST_LTG 1
#define HOST_RTG 2
#define HOST_PLTG 3
#define HOST_SECURITY 4
#define HOST_CONTOLLER 5
/* IC Options */
#define IC_ARMOUR 1
#define IC_CASCADE 2
#define IC_EX_DEFENSE 3
#define IC_EX_OFFENSE 4
#define IC_SHIELD 5
#define IC_SHIFT 6
#define IC_TRAP 7
#define QUEST_TIMER 10
#define OPT_USEC 100000 /* 10 passes per second */
#define PASSES_PER_SEC (1000000 / OPT_USEC)
#define RL_SEC * PASSES_PER_SEC
#define PULSE_ZONE (3 RL_SEC)
#define PULSE_SPECIAL (10 RL_SEC)
#define PULSE_MOBILE (10 RL_SEC)
#define PULSE_VIOLENCE (1 RL_SEC)
#define PULSE_MONORAIL (5 RL_SEC)
#define MAX_SOCK_BUF (12 * 1024) /* Size of kernel's sock buf */
#define MAX_PROMPT_LENGTH 96 /* Max length of prompt */
#define GARBAGE_SPACE 32
#define SMALL_BUFSIZE 1024
#define LARGE_BUFSIZE (MAX_SOCK_BUF - GARBAGE_SPACE - MAX_PROMPT_LENGTH)
#define MAX_STRING_LENGTH 8192
#define MAX_INPUT_LENGTH 2048 /* Max length per *line* of input */
#define MAX_RAW_INPUT_LENGTH 4096 /* 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 30 /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_TITLE_LENGTH 50 /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_WHOTITLE_LENGTH 10 /* 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 2040/* 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