1stMud4.5.3/
1stMud4.5.3/backup/
1stMud4.5.3/bin/
1stMud4.5.3/bin/extras/
1stMud4.5.3/data/i3/
1stMud4.5.3/doc/1stMud/
1stMud4.5.3/doc/Diku/
1stMud4.5.3/doc/MPDocs/
1stMud4.5.3/doc/Rom/
1stMud4.5.3/notes/
/**************************************************************************
*  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
*  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
*                                                                         *
*  Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael         *
*  Chastain, Michael Quan, and Mitchell Tse.                              *
*                                                                         *
*  In order to use any part of this Merc Diku Mud, you must comply with   *
*  both the original Diku license in 'license.doc' as well the Merc       *
*  license in 'license.txt'.  In particular, you may not remove either of *
*  these copyright notices.                                               *
*                                                                         *
*  Much time and thought has gone into this software and you are          *
*  benefiting.  We hope that you share your changes too.  What goes       *
*  around, comes around.                                                  *
***************************************************************************
*       ROM 2.4 is copyright 1993-1998 Russ Taylor                        *
*       ROM has been brought to you by the ROM consortium                 *
*           Russ Taylor (rtaylor@hypercube.org)                           *
*           Gabrielle Taylor (gtaylor@hypercube.org)                      *
*           Brian Moore (zump@rom.org)                                    *
*       By using this code, you have agreed to follow the terms of the    *
*       ROM license, in the file Rom24/doc/rom.license                    *
***************************************************************************
*          1stMud ROM Derivative (c) 2001-2004 by Markanth                *
*            http://www.firstmud.com/  <markanth@firstmud.com>            *
*         By using this code you have agreed to follow the term of        *
*             the 1stMud license in ../doc/1stMud/LICENSE                 *
***************************************************************************/

#include "merc.h"
#include "tables.h"
#include "interp.h"
#include "vnums.h"

FlagTable act_flags[] = {
	{"npc", ACT_IS_NPC, false}
	,
	{"sentinel", ACT_SENTINEL, true}
	,
	{"scavenger", ACT_SCAVENGER, true}
	,
	{"aggressive", ACT_AGGRESSIVE, true}
	,
	{"stay_area", ACT_STAY_AREA, true}
	,
	{"wimpy", ACT_WIMPY, true}
	,
	{"pet", ACT_PET, true}
	,
	{"train", ACT_TRAIN, true}
	,
	{"practice", ACT_PRACTICE, true}
	,
	{"undead", ACT_UNDEAD, true}
	,
	{"cleric", ACT_CLERIC, true}
	,
	{"mage", ACT_MAGE, true}
	,
	{"thief", ACT_THIEF, true}
	,
	{"warrior", ACT_WARRIOR, true}
	,
	{"noalign", ACT_NOALIGN, true}
	,
	{"nopurge", ACT_NOPURGE, true}
	,
	{"outdoors", ACT_OUTDOORS, true}
	,
	{"indoors", ACT_INDOORS, true}
	,
	{"healer", ACT_IS_HEALER, true}
	,
	{"gain", ACT_GAIN, true}
	,
	{"update_always", ACT_UPDATE_ALWAYS, true}
	,
	{"changer", ACT_IS_CHANGER, true}
	,
	{NULL, 0, false}
};

FlagTable plr_flags[] = {
	{"npc", PLR_IS_NPC, false}
	,
	{"automap", PLR_AUTOMAP, true}
	,
	{"autoassist", PLR_AUTOASSIST, false}
	,
	{"autoexit", PLR_AUTOEXIT, false}
	,
	{"autoloot", PLR_AUTOLOOT, false}
	,
	{"autosac", PLR_AUTOSAC, false}
	,
	{"autogold", PLR_AUTOGOLD, false}
	,
	{"autosplit", PLR_AUTOSPLIT, false}
	,
	{"pk", PLR_PK, false}
	,

	{"holylight", PLR_HOLYLIGHT, false}
	,
	{"can_loot", PLR_CANLOOT, false}
	,
	{"nosummon", PLR_NOSUMMON, false}
	,
	{"nofollow", PLR_NOFOLLOW, false}
	,
	{"permit", PLR_PERMIT, true}
	,
	{"log", PLR_LOG, false}
	,
	{"deny", PLR_DENY, false}
	,
	{"freeze", PLR_FREEZE, false}
	,
	{"outlaw", PLR_OUTLAW, false}
	,
	{"questor", PLR_QUESTER, true}
	,
	{"autodamage", PLR_AUTODAMAGE, true}
	,
	{"autoprompt", PLR_AUTOPROMPT, true}
	,
	{NULL, 0, 0}
};

FlagTable vt100_flags[] = {
	{"showcodes", VT100_SHOW_CODES, true}
	,
	{"nobeeps", VT100_NO_BEEPS, true}
	,
	{"nonewlines", VT100_NO_NEWLINE, true}
	,
	{"darkmod", VT100_DARK_MOD, true}
	,
	{"noblinking", VT100_NO_BLINKING, true}
	,
	{"nobackground", VT100_NO_BACKGROUND, true}
	,
	{"darkcolors", VT100_DARK_COLORS, true}
	,
	{"brokenansi", VT100_BROKEN_ANSI, true}
	,
	{NULL, 0, false}
};

FlagTable affect_flags[] = {
	{"blind", AFF_BLIND, true}
	,
	{"invisible", AFF_INVISIBLE, true}
	,
	{"detect_evil", AFF_DETECT_EVIL, true}
	,
	{"detect_invis", AFF_DETECT_INVIS, true}
	,
	{"detect_magic", AFF_DETECT_MAGIC, true}
	,
	{"detect_hidden", AFF_DETECT_HIDDEN, true}
	,
	{"detect_good", AFF_DETECT_GOOD, true}
	,
	{"sanctuary", AFF_SANCTUARY, true}
	,
	{"faerie_fire", AFF_FAERIE_FIRE, true}
	,
	{"infrared", AFF_INFRARED, true}
	,
	{"curse", AFF_CURSE, true}
	,
	{"poison", AFF_POISON, true}
	,
	{"protect_evil", AFF_PROTECT_EVIL, true}
	,
	{"protect_good", AFF_PROTECT_GOOD, true}
	,
	{"sneak", AFF_SNEAK, true}
	,
	{"hide", AFF_HIDE, true}
	,
	{"sleep", AFF_SLEEP, true}
	,
	{"charm", AFF_CHARM, true}
	,
	{"flying", AFF_FLYING, true}
	,
	{"pass_door", AFF_PASS_DOOR, true}
	,
	{"haste", AFF_HASTE, true}
	,
	{"calm", AFF_CALM, true}
	,
	{"plague", AFF_PLAGUE, true}
	,
	{"weaken", AFF_WEAKEN, true}
	,
	{"dark_vision", AFF_DARK_VISION, true}
	,
	{"berserk", AFF_BERSERK, true}
	,
	{"swim", AFF_SWIM, true}
	,
	{"regeneration", AFF_REGENERATION, true}
	,
	{"slow", AFF_SLOW, true}
	,
	{"forceshield", AFF_FORCE_SHIELD, true}
	,
	{"staticshield", AFF_STATIC_SHIELD, true}
	,
	{"flameshield", AFF_FLAME_SHIELD, true}
	,
	{NULL, 0, 0}
};

FlagTable off_flags[] = {
	{"area_attack", OFF_AREA_ATTACK, true}
	,
	{"backstab", OFF_BACKSTAB, true}
	,
	{"bash", OFF_BASH, true}
	,
	{"berserk", OFF_BERSERK, true}
	,
	{"disarm", OFF_DISARM, true}
	,
	{"dodge", OFF_DODGE, true}
	,
	{"fade", OFF_FADE, true}
	,
	{"fast", OFF_FAST, true}
	,
	{"kick", OFF_KICK, true}
	,
	{"dirt_kick", OFF_KICK_DIRT, true}
	,
	{"parry", OFF_PARRY, true}
	,
	{"rescue", OFF_RESCUE, true}
	,
	{"tail", OFF_TAIL, true}
	,
	{"trip", OFF_TRIP, true}
	,
	{"crush", OFF_CRUSH, true}
	,
	{"assist_all", ASSIST_ALL, true}
	,
	{"assist_align", ASSIST_ALIGN, true}
	,
	{"assist_race", ASSIST_RACE, true}
	,
	{"assist_players", ASSIST_PLAYERS, true}
	,
	{"assist_guard", ASSIST_GUARD, true}
	,
	{"assist_vnum", ASSIST_VNUM, true}
	,
	{NULL, 0, 0}
};

FlagTable imm_flags[] = {
	{"summon", IMM_SUMMON, true}
	,
	{"charm", IMM_CHARM, true}
	,
	{"magic", IMM_MAGIC, true}
	,
	{"weapon", IMM_WEAPON, true}
	,
	{"bash", IMM_BASH, true}
	,
	{"pierce", IMM_PIERCE, true}
	,
	{"slash", IMM_SLASH, true}
	,
	{"fire", IMM_FIRE, true}
	,
	{"cold", IMM_COLD, true}
	,
	{"lightning", IMM_LIGHTNING, true}
	,
	{"acid", IMM_ACID, true}
	,
	{"poison", IMM_POISON, true}
	,
	{"negative", IMM_NEGATIVE, true}
	,
	{"holy", IMM_HOLY, true}
	,
	{"energy", IMM_ENERGY, true}
	,
	{"mental", IMM_MENTAL, true}
	,
	{"disease", IMM_DISEASE, true}
	,
	{"drowning", IMM_DROWNING, true}
	,
	{"light", IMM_LIGHT, true}
	,
	{"sound", IMM_SOUND, true}
	,
	{"wood", IMM_WOOD, true}
	,
	{"silver", IMM_SILVER, true}
	,
	{"iron", IMM_IRON, true}
	,
	{NULL, 0, 0}
};

FlagTable form_flags[] = {
	{"edible", FORM_EDIBLE, true}
	,
	{"poison", FORM_POISON, true}
	,
	{"magical", FORM_MAGICAL, true}
	,
	{"instant_decay", FORM_INSTANT_DECAY, true}
	,
	{"other", FORM_OTHER, true}
	,
	{"animal", FORM_ANIMAL, true}
	,
	{"sentient", FORM_SENTIENT, true}
	,
	{"undead", FORM_UNDEAD, true}
	,
	{"construct", FORM_CONSTRUCT, true}
	,
	{"mist", FORM_MIST, true}
	,
	{"intangible", FORM_INTANGIBLE, true}
	,
	{"biped", FORM_BIPED, true}
	,
	{"centaur", FORM_CENTAUR, true}
	,
	{"insect", FORM_INSECT, true}
	,
	{"spider", FORM_SPIDER, true}
	,
	{"crustacean", FORM_CRUSTACEAN, true}
	,
	{"worm", FORM_WORM, true}
	,
	{"blob", FORM_BLOB, true}
	,
	{"mammal", FORM_MAMMAL, true}
	,
	{"bird", FORM_BIRD, true}
	,
	{"reptile", FORM_REPTILE, true}
	,
	{"snake", FORM_SNAKE, true}
	,
	{"dragon", FORM_DRAGON, true}
	,
	{"amphibian", FORM_AMPHIBIAN, true}
	,
	{"fish", FORM_FISH, true}
	,
	{"cold_blood", FORM_COLD_BLOOD, true}
	,
	{NULL, 0, 0}
};

FlagTable part_flags[] = {
	{"head", PART_HEAD, true}
	,
	{"arms", PART_ARMS, true}
	,
	{"legs", PART_LEGS, true}
	,
	{"heart", PART_HEART, true}
	,
	{"brains", PART_BRAINS, true}
	,
	{"guts", PART_GUTS, true}
	,
	{"hands", PART_HANDS, true}
	,
	{"feet", PART_FEET, true}
	,
	{"fingers", PART_FINGERS, true}
	,
	{"ear", PART_EAR, true}
	,
	{"eye", PART_EYE, true}
	,
	{"long_tongue", PART_LONG_TONGUE, true}
	,
	{"eyestalks", PART_EYESTALKS, true}
	,
	{"tentacles", PART_TENTACLES, true}
	,
	{"fins", PART_FINS, true}
	,
	{"wings", PART_WINGS, true}
	,
	{"tail", PART_TAIL, true}
	,
	{"claws", PART_CLAWS, true}
	,
	{"fangs", PART_FANGS, true}
	,
	{"horns", PART_HORNS, true}
	,
	{"scales", PART_SCALES, true}
	,
	{"tusks", PART_TUSKS, true}
	,
	{NULL, 0, 0}
};

FlagTable comm_flags[] = {
	{"quiet", COMM_QUIET, true}
	,
	{"deaf", COMM_DEAF, true}
	,
	{"nowiz", COMM_NOWIZ, true}
	,
	{"noclangossip", COMM_NOAUCTION, true}
	,
	{"nogossip", COMM_NOGOSSIP, true}
	,
	{"noquestion", COMM_NOQUESTION, true}
	,
	{"nomusic", COMM_NOMUSIC, true}
	,
	{"noclan", COMM_NOCLAN, true}
	,
	{"noquote", COMM_NOQUOTE, true}
	,
	{"shoutsoff", COMM_SHOUTSOFF, true}
	,
	{"compact", COMM_COMPACT, true}
	,
	{"brief", COMM_BRIEF, true}
	,
	{"prompt", COMM_PROMPT, true}
	,
	{"gprompt", COMM_GPROMPT, true}
	,
	{"combine", COMM_COMBINE, true}
	,
	{"telnet_ga", COMM_TELNET_GA, true}
	,
	{"show_affects", COMM_SHOW_AFFECTS, true}
	,
	{"nograts", COMM_NOGRATS, true}
	,
	{"noemote", COMM_NOEMOTE, false}
	,
	{"noshout", COMM_NOSHOUT, false}
	,
	{"notell", COMM_NOTELL, false}
	,
	{"nochannels", COMM_NOCHANNELS, false}
	,
	{"snoop_proof", COMM_SNOOP_PROOF, false}
	,
	{"afk", COMM_AFK, true}
	,
	{"nocolor", COMM_NOCOLOR, true}
	,
	{"telnet_eor", COMM_TELNET_EOR, true}
	,
	{"nogocial", COMM_NOGOCIAL, true}
	,
	{"noooc", COMM_NOOOC, true}
	,
	{"nobuddy", COMM_NOBUDDY, true}
	,
	{"censor", COMM_CENSOR, true}
	,
	{"noemoteverbs", COMM_NOSAYVERBS, true}
	,
	{"nopretitles", COMM_NOPRETITLE, true}
	,

	{NULL, 0, 0}
};

FlagTable desc_flags[] = {
	{"color", DESC_COLOR, true}
	,
	{"eor", DESC_TELOPT_EOR, true}
	,
	{"echo", DESC_TELOPT_ECHO, true}
	,
	{"naws", DESC_TELOPT_NAWS, true}
	,
	{"pueblo", DESC_PUEBLO, true}
	,
	{"mxp", DESC_MXP, true}
	,
	{"msp", DESC_MSP, true}
	,
	{"ttype", DESC_TELOPT_TTYPE, true}
	,
	{"binary", DESC_TELOPT_BINARY, true}
	,
	{"portal", DESC_PORTAL, true}
	,
	{"imp", DESC_IMP, true}
	,
	{NULL, 0, 0}
};

FlagTable mprog_flags[] = {
	{"act", TRIG_ACT, true}
	,
	{"bribe", TRIG_BRIBE, true}
	,
	{"death", TRIG_DEATH, true}
	,
	{"entry", TRIG_ENTRY, true}
	,
	{"fight", TRIG_FIGHT, true}
	,
	{"give", TRIG_GIVE, true}
	,
	{"greet", TRIG_GREET, true}
	,
	{"grall", TRIG_GRALL, true}
	,
	{"kill", TRIG_KILL, true}
	,
	{"hpcnt", TRIG_HPCNT, true}
	,
	{"random", TRIG_RANDOM, true}
	,
	{"speech", TRIG_SPEECH, true}
	,
	{"exit", TRIG_EXIT, true}
	,
	{"exall", TRIG_EXALL, true}
	,
	{"delay", TRIG_DELAY, true}
	,
	{"surr", TRIG_SURR, true}
	,
	{NULL, 0, true}
};

FlagTable oprog_flags[] = {
	{"act", TRIG_ACT, true}
	,
	{"fight", TRIG_FIGHT, true}
	,
	{"give", TRIG_GIVE, true}
	,
	{"greet", TRIG_GREET, true}
	,
	{"grall", TRIG_GRALL, true}
	,
	{"random", TRIG_RANDOM, true}
	,
	{"speech", TRIG_SPEECH, true}
	,
	{"exall", TRIG_EXALL, true}
	,
	{"delay", TRIG_DELAY, true}
	,
	{"drop", TRIG_DROP, true}
	,
	{"get", TRIG_GET, true}
	,
	{"sit", TRIG_SIT, true}
	,
	{NULL, 0, true}
	,
};

FlagTable rprog_flags[] = {
	{"act", TRIG_ACT, true}
	,
	{"fight", TRIG_FIGHT, true}
	,
	{"drop", TRIG_DROP, true}
	,
	{"greet", TRIG_GREET, true}
	,
	{"grall", TRIG_GRALL, true}
	,
	{"random", TRIG_RANDOM, true}
	,
	{"speech", TRIG_SPEECH, true}
	,
	{"exall", TRIG_EXALL, true}
	,
	{"delay", TRIG_DELAY, true}
	,
	{NULL, 0, true}
	,
};

FlagTable area_flags[] = {
	{"none", OLC_NONE, false}
	,
	{"changed", OLC_CHANGED, true}
	,
	{"added", AREA_ADDED, true}
	,
	{"loading", AREA_LOADING, false}
	,
	{"player_homes", AREA_PLAYER_HOMES, true}
	,
	{"closed", AREA_CLOSED, true}
	,
	{NULL, 0, 0}
};

FlagTable sex_flags[] = {
	{"male", SEX_MALE, true}
	,
	{"female", SEX_FEMALE, true}
	,
	{"either", SEX_NEUTRAL, true}
	,
	{"random", SEX_RANDOM, true}
	,
	{"none", SEX_NEUTRAL, true}
	,
	{NULL, 0, 0}
};

FlagTable exit_flags[] = {
	{"door", EX_ISDOOR, true}
	,
	{"closed", EX_CLOSED, true}
	,
	{"locked", EX_LOCKED, true}
	,
	{"pickproof", EX_PICKPROOF, true}
	,
	{"nopass", EX_NOPASS, true}
	,
	{"easy", EX_EASY, true}
	,
	{"hard", EX_HARD, true}
	,
	{"infuriating", EX_INFURIATING, true}
	,
	{"noclose", EX_NOCLOSE, true}
	,
	{"nolock", EX_NOLOCK, true}
	,
	{"doorbell", EX_DOORBELL, true}
	,
	{NULL, 0, 0}
};

FlagTable room_flags[] = {
	{"dark", ROOM_DARK, true}
	,
	{"home_entrance", HOME_ENTRANCE, true}
	,
	{"no_mob", ROOM_NO_MOB, true}
	,
	{"indoors", ROOM_INDOORS, true}
	,
	{"private", ROOM_PRIVATE, true}
	,
	{"safe", ROOM_SAFE, true}
	,
	{"solitary", ROOM_SOLITARY, true}
	,
	{"pet_shop", ROOM_PET_SHOP, true}
	,
	{"no_recall", ROOM_NO_RECALL, true}
	,
	{"imp_only", ROOM_IMP_ONLY, true}
	,
	{"gods_only", ROOM_GODS_ONLY, true}
	,
	{"heroes_only", ROOM_HEROES_ONLY, true}
	,
	{"newbies_only", ROOM_NEWBIES_ONLY, true}
	,
	{"law", ROOM_LAW, true}
	,
	{"nowhere", ROOM_NOWHERE, true}
	,
	{"noexplore", ROOM_NOEXPLORE, true}
	,
	{"noautomap", ROOM_NOAUTOMAP, true}
	,
	{"arena", ROOM_ARENA, true}
	,
	{"bank", ROOM_BANK, true}
	,
	{"save_objs", ROOM_SAVE_OBJS, true}
	,
	{NULL, 0, 0}
};

FlagTable sector_flags[] = {
	{"inside", SECT_INSIDE, true}
	,
	{"city", SECT_CITY, true}
	,
	{"field", SECT_FIELD, true}
	,
	{"forest", SECT_FOREST, true}
	,
	{"hills", SECT_HILLS, true}
	,
	{"mountain", SECT_MOUNTAIN, true}
	,
	{"swim", SECT_WATER_SWIM, true}
	,
	{"noswim", SECT_WATER_NOSWIM, true}
	,
	{"ice", SECT_ICE, true}
	,
	{"air", SECT_AIR, true}
	,
	{"desert", SECT_DESERT, true}
	,
	{"road", SECT_ROAD, true}
	,
	{"path", SECT_PATH, true}
	,
	{"swamp", SECT_SWAMP, true}
	,
	{"jungle", SECT_JUNGLE, true}
	,
	{"cave", SECT_CAVE, true}
	,
	{NULL, 0, 0}
};

FlagTable type_flags[] = {
	{"none", ITEM_NONE, false}
	,
	{"light", ITEM_LIGHT, true}
	,
	{"scroll", ITEM_SCROLL, true}
	,
	{"wand", ITEM_WAND, true}
	,
	{"staff", ITEM_STAFF, true}
	,
	{"weapon", ITEM_WEAPON, true}
	,
	{"treasure", ITEM_TREASURE, true}
	,
	{"armor", ITEM_ARMOR, true}
	,
	{"potion", ITEM_POTION, true}
	,
	{"furniture", ITEM_FURNITURE, true}
	,
	{"trash", ITEM_TRASH, true}
	,
	{"container", ITEM_CONTAINER, true}
	,
	{"drinkcontainer", ITEM_DRINK_CON, true}
	,
	{"key", ITEM_KEY, true}
	,
	{"food", ITEM_FOOD, true}
	,
	{"money", ITEM_MONEY, true}
	,
	{"boat", ITEM_BOAT, true}
	,
	{"npc_corpse", ITEM_CORPSE_NPC, true}
	,
	{"pc_corpse", ITEM_CORPSE_PC, false}
	,
	{"fountain", ITEM_FOUNTAIN, true}
	,
	{"pill", ITEM_PILL, true}
	,
	{"protect", ITEM_PROTECT, true}
	,
	{"map", ITEM_MAP, true}
	,
	{"portal", ITEM_PORTAL, true}
	,
	{"warpstone", ITEM_WARP_STONE, true}
	,
	{"room_key", ITEM_ROOM_KEY, true}
	,
	{"gem", ITEM_GEM, true}
	,
	{"jewelry", ITEM_JEWELRY, true}
	,
	{"jukebox", ITEM_JUKEBOX, true}
	,
	{"clothing", ITEM_CLOTHING, true}
	,
	{NULL, 0, 0}
};

FlagTable extra_flags[] = {
	{"glow", ITEM_GLOW, true}
	,
	{"hum", ITEM_HUM, true}
	,
	{"dark", ITEM_DARK, true}
	,
	{"lock", ITEM_LOCK, true}
	,
	{"evil", ITEM_EVIL, true}
	,
	{"invis", ITEM_INVIS, true}
	,
	{"magic", ITEM_MAGIC, true}
	,
	{"nodrop", ITEM_NODROP, true}
	,
	{"bless", ITEM_BLESS, true}
	,
	{"antigood", ITEM_ANTI_GOOD, true}
	,
	{"antievil", ITEM_ANTI_EVIL, true}
	,
	{"antineutral", ITEM_ANTI_NEUTRAL, true}
	,
	{"noremove", ITEM_NOREMOVE, true}
	,
	{"inventory", ITEM_INVENTORY, true}
	,
	{"nopurge", ITEM_NOPURGE, true}
	,
	{"rotdeath", ITEM_ROT_DEATH, true}
	,
	{"visdeath", ITEM_VIS_DEATH, true}
	,
	{"nonmetal", ITEM_NONMETAL, true}
	,
	{"meltdrop", ITEM_MELT_DROP, true}
	,
	{"hadtimer", ITEM_HAD_TIMER, true}
	,
	{"sellextract", ITEM_SELL_EXTRACT, true}
	,
	{"burnproof", ITEM_BURN_PROOF, true}
	,
	{"nouncurse", ITEM_NOUNCURSE, true}
	,
	{"quest", ITEM_QUEST, true}
	,
	{"auctioned", ITEM_AUCTIONED, false}
	,
	{NULL, 0, 0}
};

FlagTable wear_flags[] = {
	{"take", ITEM_TAKE, true}
	,
	{"finger", ITEM_WEAR_FINGER, true}
	,
	{"neck", ITEM_WEAR_NECK, true}
	,
	{"body", ITEM_WEAR_BODY, true}
	,
	{"head", ITEM_WEAR_HEAD, true}
	,
	{"legs", ITEM_WEAR_LEGS, true}
	,
	{"feet", ITEM_WEAR_FEET, true}
	,
	{"hands", ITEM_WEAR_HANDS, true}
	,
	{"arms", ITEM_WEAR_ARMS, true}
	,
	{"shield", ITEM_WEAR_SHIELD, true}
	,
	{"about", ITEM_WEAR_ABOUT, true}
	,
	{"waist", ITEM_WEAR_WAIST, true}
	,
	{"wrist", ITEM_WEAR_WRIST, true}
	,
	{"wield", ITEM_WIELD, true}
	,
	{"hold", ITEM_HOLD, true}
	,
	{"nosac", ITEM_NO_SAC, true}
	,
	{"wearfloat", ITEM_WEAR_FLOAT, true}
	,

	{NULL, 0, 0}
};

FlagTable apply_flags[] = {
	{"none", APPLY_NONE, true}
	,
	{"strength", APPLY_STR, true}
	,
	{"dexterity", APPLY_DEX, true}
	,
	{"intelligence", APPLY_INT, true}
	,
	{"wisdom", APPLY_WIS, true}
	,
	{"constitution", APPLY_CON, true}
	,
	{"sex", APPLY_SEX, true}
	,
	{"class", APPLY_CLASS, true}
	,
	{"level", APPLY_LEVEL, true}
	,
	{"age", APPLY_AGE, true}
	,
	{"height", APPLY_HEIGHT, true}
	,
	{"weight", APPLY_WEIGHT, true}
	,
	{"mana", APPLY_MANA, true}
	,
	{"hp", APPLY_HIT, true}
	,
	{"move", APPLY_MOVE, true}
	,
	{"gold", APPLY_GOLD, true}
	,
	{"experience", APPLY_EXP, true}
	,
	{"ac", APPLY_AC, true}
	,
	{"hitroll", APPLY_HITROLL, true}
	,
	{"damroll", APPLY_DAMROLL, true}
	,
	{"saves", APPLY_SAVES, true}
	,
	{"savingpara", APPLY_SAVING_PARA, true}
	,
	{"savingrod", APPLY_SAVING_ROD, true}
	,
	{"savingpetri", APPLY_SAVING_PETRI, true}
	,
	{"savingbreath", APPLY_SAVING_BREATH, true}
	,
	{"savingspell", APPLY_SAVING_SPELL, true}
	,
	{"spellaffect", APPLY_SPELL_AFFECT, false}
	,
	{NULL, 0, 0}
};

FlagTable wear_loc_strings[] = {
	{"none", WEAR_NONE, true}
	,
	{"as a light", WEAR_LIGHT, true}
	,
	{"on the left finger", WEAR_FINGER_L, true}
	,
	{"on the right finger", WEAR_FINGER_R, true}
	,
	{"around the neck (1)", WEAR_NECK_1, true}
	,
	{"around the neck (2)", WEAR_NECK_2, true}
	,
	{"on the body", WEAR_BODY, true}
	,
	{"over the head", WEAR_HEAD, true}
	,
	{"on the legs", WEAR_LEGS, true}
	,
	{"on the feet", WEAR_FEET, true}
	,
	{"on the hands", WEAR_HANDS, true}
	,
	{"on the arms", WEAR_ARMS, true}
	,
	{"as a shield", WEAR_SHIELD, true}
	,
	{"about the shoulders", WEAR_ABOUT, true}
	,
	{"around the waist", WEAR_WAIST, true}
	,
	{"on the left wrist", WEAR_WRIST_L, true}
	,
	{"on the right wrist", WEAR_WRIST_R, true}
	,
	{"wielded", WEAR_WIELD, true}
	,
	{"held in the hands", WEAR_HOLD, true}
	,
	{"floating nearby", WEAR_FLOAT, true}
	,
	{"dual wielded", WEAR_SECONDARY}
	,
	{NULL, 0, 0}
};

FlagTable wear_loc_flags[] = {
	{"none", WEAR_NONE, true}
	,
	{"light", WEAR_LIGHT, true}
	,
	{"lfinger", WEAR_FINGER_L, true}
	,
	{"rfinger", WEAR_FINGER_R, true}
	,
	{"neck1", WEAR_NECK_1, true}
	,
	{"neck2", WEAR_NECK_2, true}
	,
	{"body", WEAR_BODY, true}
	,
	{"head", WEAR_HEAD, true}
	,
	{"legs", WEAR_LEGS, true}
	,
	{"feet", WEAR_FEET, true}
	,
	{"hands", WEAR_HANDS, true}
	,
	{"arms", WEAR_ARMS, true}
	,
	{"shield", WEAR_SHIELD, true}
	,
	{"about", WEAR_ABOUT, true}
	,
	{"waist", WEAR_WAIST, true}
	,
	{"lwrist", WEAR_WRIST_L, true}
	,
	{"rwrist", WEAR_WRIST_R, true}
	,
	{"wielded", WEAR_WIELD, true}
	,
	{"hold", WEAR_HOLD, true}
	,
	{"floating", WEAR_FLOAT, true}
	,
	{"secondary", WEAR_SECONDARY, true}
	,
	{NULL, 0, 0}
};

FlagTable container_flags[] = {
	{"closeable", CONT_CLOSEABLE, true}
	,
	{"pickproof", CONT_PICKPROOF, true}
	,
	{"closed", CONT_CLOSED, true}
	,
	{"locked", CONT_LOCKED, true}
	,
	{"puton", CONT_PUT_ON, true}
	,
	{NULL, 0, 0}
};

FlagTable ac_type[] = {
	{"pierce", AC_PIERCE, true}
	,
	{"bash", AC_BASH, true}
	,
	{"slash", AC_SLASH, true}
	,
	{"exotic", AC_EXOTIC, true}
	,
	{NULL, 0, 0}
};

FlagTable size_flags[] = {
	{"tiny", SIZE_TINY, true}
	,
	{"small", SIZE_SMALL, true}
	,
	{"medium", SIZE_MEDIUM, true}
	,
	{"large", SIZE_LARGE, true}
	,
	{"huge", SIZE_HUGE, true}
	,
	{"giant", SIZE_GIANT, true}
	,
	{NULL, 0, 0}
	,
};

FlagTable weapon_types[] = {
	{"exotic", WEAPON_EXOTIC, true}
	,
	{"sword", WEAPON_SWORD, true}
	,
	{"dagger", WEAPON_DAGGER, true}
	,
	{"spear", WEAPON_SPEAR, true}
	,
	{"mace", WEAPON_MACE, true}
	,
	{"axe", WEAPON_AXE, true}
	,
	{"flail", WEAPON_FLAIL, true}
	,
	{"whip", WEAPON_WHIP, true}
	,
	{"polearm", WEAPON_POLEARM, true}
	,
	{NULL, 0, 0}
};

FlagTable weapon_flags[] = {
	{"flaming", WEAPON_FLAMING, true}
	,
	{"frost", WEAPON_FROST, true}
	,
	{"vampiric", WEAPON_VAMPIRIC, true}
	,
	{"sharp", WEAPON_SHARP, true}
	,
	{"vorpal", WEAPON_VORPAL, true}
	,
	{"twohands", WEAPON_TWO_HANDS, true}
	,
	{"shocking", WEAPON_SHOCKING, true}
	,
	{"poison", WEAPON_POISON, true}
	,
	{NULL, 0, 0}
};

FlagTable res_flags[] = {
	{"summon", RES_SUMMON, true}
	,
	{"charm", RES_CHARM, true}
	,
	{"magic", RES_MAGIC, true}
	,
	{"weapon", RES_WEAPON, true}
	,
	{"bash", RES_BASH, true}
	,
	{"pierce", RES_PIERCE, true}
	,
	{"slash", RES_SLASH, true}
	,
	{"fire", RES_FIRE, true}
	,
	{"cold", RES_COLD, true}
	,
	{"lightning", RES_LIGHTNING, true}
	,
	{"acid", RES_ACID, true}
	,
	{"poison", RES_POISON, true}
	,
	{"negative", RES_NEGATIVE, true}
	,
	{"holy", RES_HOLY, true}
	,
	{"energy", RES_ENERGY, true}
	,
	{"mental", RES_MENTAL, true}
	,
	{"disease", RES_DISEASE, true}
	,
	{"drowning", RES_DROWNING, true}
	,
	{"light", RES_LIGHT, true}
	,
	{"sound", RES_SOUND, true}
	,
	{"wood", RES_WOOD, true}
	,
	{"silver", RES_SILVER, true}
	,
	{"iron", RES_IRON, true}
	,
	{NULL, 0, 0}
};

FlagTable vuln_flags[] = {
	{"summon", VULN_SUMMON, true}
	,
	{"charm", VULN_CHARM, true}
	,
	{"magic", VULN_MAGIC, true}
	,
	{"weapon", VULN_WEAPON, true}
	,
	{"bash", VULN_BASH, true}
	,
	{"pierce", VULN_PIERCE, true}
	,
	{"slash", VULN_SLASH, true}
	,
	{"fire", VULN_FIRE, true}
	,
	{"cold", VULN_COLD, true}
	,
	{"lightning", VULN_LIGHTNING, true}
	,
	{"acid", VULN_ACID, true}
	,
	{"poison", VULN_POISON, true}
	,
	{"negative", VULN_NEGATIVE, true}
	,
	{"holy", VULN_HOLY, true}
	,
	{"energy", VULN_ENERGY, true}
	,
	{"mental", VULN_MENTAL, true}
	,
	{"disease", VULN_DISEASE, true}
	,
	{"drowning", VULN_DROWNING, true}
	,
	{"light", VULN_LIGHT, true}
	,
	{"sound", VULN_SOUND, true}
	,
	{"wood", VULN_WOOD, true}
	,
	{"silver", VULN_SILVER, true}
	,
	{"iron", VULN_IRON, true}
	,
	{NULL, 0, 0}
};

FlagTable position_flags[] = {
	{"dead", POS_DEAD, true}
	,
	{"mortal", POS_MORTAL, false}
	,
	{"incap", POS_INCAP, false}
	,
	{"stunned", POS_STUNNED, false}
	,
	{"sleeping", POS_SLEEPING, true}
	,
	{"resting", POS_RESTING, true}
	,
	{"sitting", POS_SITTING, true}
	,
	{"fighting", POS_FIGHTING, true}
	,
	{"standing", POS_STANDING, true}
	,
	{NULL, 0, 0}
};

FlagTable portal_flags[] = {
	{"normal_exit", GATE_NORMAL_EXIT, true}
	,
	{"no_curse", GATE_NOCURSE, true}
	,
	{"go_with", GATE_GOWITH, true}
	,
	{"buggy", GATE_BUGGY, true}
	,
	{"random", GATE_RANDOM, true}
	,
	{NULL, 0, 0}
};

FlagTable furniture_flags[] = {
	{"stand_at", STAND_AT, true}
	,
	{"stand_on", STAND_ON, true}
	,
	{"stand_in", STAND_IN, true}
	,
	{"sit_at", SIT_AT, true}
	,
	{"sit_on", SIT_ON, true}
	,
	{"sit_in", SIT_IN, true}
	,
	{"rest_at", REST_AT, true}
	,
	{"rest_on", REST_ON, true}
	,
	{"rest_in", REST_IN, true}
	,
	{"sleep_at", SLEEP_AT, true}
	,
	{"sleep_on", SLEEP_ON, true}
	,
	{"sleep_in", SLEEP_IN, true}
	,
	{"put_at", PUT_AT, true}
	,
	{"put_on", PUT_ON, true}
	,
	{"put_in", PUT_IN, true}
	,
	{"put_inside", PUT_INSIDE, true}
	,
	{NULL, 0, 0}
};

FlagTable apply_types[] = {
	{"affects", TO_AFFECTS, true}
	,
	{"object", TO_OBJECT, true}
	,
	{"immune", TO_IMMUNE, true}
	,
	{"resist", TO_RESIST, true}
	,
	{"vuln", TO_VULN, true}
	,
	{"weapon", TO_WEAPON, true}
	,
	{NULL, 0, true}
};

const struct bit_type bitvector_type[] = {
	{
	 affect_flags, "affect"},
	{apply_flags, "apply"},
	{imm_flags, "imm"},
	{res_flags, "res"},
	{vuln_flags, "vuln"},
	{weapon_flags, "weapon"}
};

FlagTable color_attributes[] = {
	{"normal", CL_NONE, true},
	{"bright", CL_BRIGHT, true},
	{"dim", CL_DIM, true},
	{"standout", CL_STANDOUT, true},
	{"underscore", CL_UNDER, true},
	{"blink", CL_BLINK, true},
	{"italic", CL_ITALIC, true},
	{"reverse", CL_REVERSE, true},
	{"hidden", CL_REVERSE, true},
	{"random", CL_RANDOM, true},
	{NULL, 0, false}
};

FlagTable color_foregrounds[] = {
	{"black", FG_BLACK, true},
	{"red", FG_RED, true},
	{"green", FG_GREEN, true},
	{"yellow", FG_YELLOW, true},
	{"blue", FG_BLUE, true},
	{"magenta", FG_MAGENTA, true},
	{"cyan", FG_CYAN, true},
	{"white", FG_WHITE, true},
	{"random", FG_RANDOM, true},
	{"none", FG_NONE, true},
	{NULL, 0, false}
};

FlagTable color_backgrounds[] = {
	{"black", BG_BLACK, true},
	{"red", BG_RED, true},
	{"green", BG_GREEN, true},
	{"yellow", BG_YELLOW, true},
	{"blue", BG_BLUE, true},
	{"magenta", BG_MAGENTA, true},
	{"cyan", BG_CYAN, true},
	{"white", BG_WHITE, true},
	{"random", BG_RANDOM, true},
	{"none", BG_NONE, true},
	{NULL, 0, false}
};

const struct vnum_type vnum_table[] = {
#define MAKE_VNUM_TABLE    	1
#include "vnums.h"
#undef MAKE_VNUM_TABLE
};

FlagTable info_flags[] = {
	{"Notes", INFO_NOTE, true},
	{"Levels", INFO_LEVEL, true},
	{"Deaths", INFO_DEATH, true},
	{"Logins", INFO_LOGIN, true},
	{"Logouts", INFO_LOGOUT, true},
	{"War", INFO_WAR, true},
	{"Gquest", INFO_GQUEST, true},
	{"Auction", INFO_AUCTION, true},
	{"Misc", INFO_MISC, true},
	{NULL, 0, 0}
};

FlagTable clan_flags[] = {
	{"independent", CLAN_INDEPENDENT, true},
	{"no_pk", CLAN_NO_PK, true},
	{"immortal", CLAN_IMMORTAL, true},
	{"favoured", CLAN_FAVOURED, true},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, 0}
};

FlagTable log_flags[] = {
	{"normal", LOG_NORMAL, true},
	{"always", LOG_ALWAYS, true},
	{"never", LOG_NEVER, true},
	{NULL, 0, false}
};

FlagTable target_flags[] = {
	{"ignore", TAR_IGNORE, true},
	{"char_offensive", TAR_CHAR_OFFENSIVE, true},
	{"char_defensive", TAR_CHAR_DEFENSIVE, true},
	{"char_self", TAR_CHAR_SELF, true},
	{"obj_inventory", TAR_OBJ_INV, true},
	{"obj_char_defensive", TAR_OBJ_CHAR_DEF, true},
	{"obj_char_offensive", TAR_OBJ_CHAR_OFF, true},
	{NULL, 0, 0}
};

const struct tzone_type tzone_table[MAX_TZONE] = {
	{"IDLW", "International Date Line West", -(12 * HOUR), 0},
	{"NT", "Nome", -(11 * HOUR), 0},
	{"HST", "Hawaii Standard", -(10 * HOUR), -9},
	{"AKST", "Alaska Standard", -(HOUR * 9), -(HOUR * 8)},
	{"PST", "Pacific Standard", -(HOUR * 8), -(HOUR * 7)},
	{"MST", "Mountain Standard", -(HOUR * 7), -(HOUR * 6)},
	{"CST", "Central Standard", -(HOUR * 6), -(HOUR * 5)},
	{"EST", "Eastern Standard", -(HOUR * 5), -(HOUR * 4)},
	{"AST", "Atlantic Standard", -(HOUR * 4), -(HOUR * 3)},

	{"NFT", "Newfoundland", -(HOUR * 2 + (MINUTE * 30)),
	 -(HOUR * 2 + (MINUTE * 30))},
	{"BRST", "Brazil Standard", -(HOUR * 3), -(HOUR * 2)},
	{"AT", "Mid-Atlantic", -(HOUR * 2), -(HOUR)},
	{"WAT", "West Africa", -(HOUR), 0},
	{"WET", "Western European", 0, 0},
	{"CET", "Central European", (HOUR * 1), 0},
	{"EET", "Eastern Europe, USSR Zone 1", (HOUR * 2), (HOUR * 1)},
	{"BT", "Baghdad, USSR Zone 2", (HOUR * 3), (HOUR * 3)},
	{"IT", "Iran", (HOUR * 3 + (MINUTE * 30)), (HOUR * 3 + (MINUTE * 30))},
	{"ZP4", "USSR Zone 3", (HOUR * 4), (HOUR * 4)},
	{"ZP5", "USSR Zone 4", (HOUR * 5), (HOUR * 5)},

	{"IST", "Indian Standard", (HOUR * 5 + (MINUTE * 30)),
	 (HOUR * 5 + (MINUTE * 30))},
	{"ZP6", "AUSSR Zone 5", (HOUR * 6), (HOUR * 6)},

	{"NST", "North Sumatra", (HOUR * 6 + (MINUTE * 30)),
	 (HOUR * 6 + (MINUTE * 30))},
	{"JAVT", "Java", (HOUR * 7), (HOUR * 7)},
	{"AWST", "Australian Western Standard", (HOUR * 8), (HOUR * 8)},
	{"JST", "Japan Standard, USSR Zone 8", (HOUR * 9), (HOUR * 9)},

	{"ACST", "Australian Central Standard", (HOUR * 9 + (MINUTE * 30)),
	 (HOUR * 9 + (MINUTE * 30))},
	{"AEST", "Australian Eastern Standard", (HOUR * 10), (HOUR * 11)},
	{"AEDT", "Australian Eastern Daylight", (HOUR * 11), (HOUR * 11)},
	{"NZST", "New Zealand Standard", (HOUR * 12), (HOUR * 12)}
};

FlagTable chan_types[] = {
	{"public", spec_public_flag, true},
	{"clan", spec_clan_flag, true},
	{"immortal", spec_imm_flag, true},
	{"buddy", spec_buddy_flag, true},
	{"none", spec_none, false},
	{NULL, 0, 0}
};

FlagTable mud_flags[] = {
	{"wizlock", MUD_WIZLOCK, true},
	{"newlock", MUD_NEWLOCK, true},
	{"logall", MUD_LOGALL, true},
	{"nodnslookups", NO_DNS_LOOKUPS, true},
	{"verbose_resets", VERBOSE_RESETS, true},
	{"disable_extended_ansi", DISABLE_EXTENDED_ASCII_CHARS, true},
	{"disable_tilde_conversion", DISABLE_TILDE_CONVERSION, true},
	{"disable_area_recall", DISABLE_AREA_RECALL, true},
	{"disable_autodam", DISABLE_AUTODAM, true},
	{"disable_automap", DISABLE_AUTOMAP, true},
	{"disable_aggro_mobs", DISABLE_AGGRO_MOBS, true},
	{"disable_area_directions", DISABLE_AREA_DIRECTIONS, true},
	{NULL, 0, 0}
};

FlagTable ignore_flags[] = {
	{"none", 0, true},
	{"channels", IGNORE_CHANNELS, true},
	{"notes", IGNORE_NOTES, true},
	{"tells", IGNORE_TELLS, true},
	{"announce", IGNORE_ANNOUNCE, true},
	{"levels", IGNORE_LEVELS, true},
	{"socials", IGNORE_SOCIALS, true},
	{"all", IGNORE_ALL, true},
	{"says", IGNORE_SAY, true},
	{NULL, 0, false}
};

const struct directory_type directories_table[] = {
	{"Data files.", DATA_DIR},
	{"Area files.", AREA_DIR},
	{"Binary files.", BIN_DIR},
	{"Log files.", LOG_DIR},
	{"Note files.", NOTE_DIR},
#ifndef DISABLE_I3
	{"I3 files.", I3DIR},
#endif
#ifndef INITIAL_ALPHA_PFILEDIRS
	{"player files", PLAYER_DIR},
	{"backup player files", PLAYER_BACKUP},
#else
	{"player files root", PLAYER_DIR},
	{"player files - A", PLAYER_DIR "a" DIR_SYM},
	{"player files - B", PLAYER_DIR "b" DIR_SYM},
	{"player files - C", PLAYER_DIR "c" DIR_SYM},
	{"player files - D", PLAYER_DIR "d" DIR_SYM},
	{"player files - E", PLAYER_DIR "e" DIR_SYM},
	{"player files - F", PLAYER_DIR "f" DIR_SYM},
	{"player files - G", PLAYER_DIR "g" DIR_SYM},
	{"player files - H", PLAYER_DIR "h" DIR_SYM},
	{"player files - I", PLAYER_DIR "i" DIR_SYM},
	{"player files - J", PLAYER_DIR "j" DIR_SYM},
	{"player files - K", PLAYER_DIR "k" DIR_SYM},
	{"player files - L", PLAYER_DIR "l" DIR_SYM},
	{"player files - M", PLAYER_DIR "m" DIR_SYM},
	{"player files - N", PLAYER_DIR "n" DIR_SYM},
	{"player files - O", PLAYER_DIR "o" DIR_SYM},
	{"player files - P", PLAYER_DIR "p" DIR_SYM},
	{"player files - Q", PLAYER_DIR "q" DIR_SYM},
	{"player files - R", PLAYER_DIR "r" DIR_SYM},
	{"player files - S", PLAYER_DIR "s" DIR_SYM},
	{"player files - T", PLAYER_DIR "t" DIR_SYM},
	{"player files - U", PLAYER_DIR "u" DIR_SYM},
	{"player files - V", PLAYER_DIR "v" DIR_SYM},
	{"player files - W", PLAYER_DIR "w" DIR_SYM},
	{"player files - X", PLAYER_DIR "x" DIR_SYM},
	{"player files - Y", PLAYER_DIR "y" DIR_SYM},
	{"player files - Z", PLAYER_DIR "z" DIR_SYM},
	{"backup player files root", PLAYER_BACKUP},
	{"backup player files - A", PLAYER_BACKUP "a" DIR_SYM},
	{"backup player files - B", PLAYER_BACKUP "b" DIR_SYM},
	{"backup player files - C", PLAYER_BACKUP "c" DIR_SYM},
	{"backup player files - D", PLAYER_BACKUP "d" DIR_SYM},
	{"backup player files - E", PLAYER_BACKUP "e" DIR_SYM},
	{"backup player files - F", PLAYER_BACKUP "f" DIR_SYM},
	{"backup player files - G", PLAYER_BACKUP "g" DIR_SYM},
	{"backup player files - H", PLAYER_BACKUP "h" DIR_SYM},
	{"backup player files - I", PLAYER_BACKUP "i" DIR_SYM},
	{"backup player files - J", PLAYER_BACKUP "j" DIR_SYM},
	{"backup player files - K", PLAYER_BACKUP "k" DIR_SYM},
	{"backup player files - L", PLAYER_BACKUP "l" DIR_SYM},
	{"backup player files - M", PLAYER_BACKUP "m" DIR_SYM},
	{"backup player files - N", PLAYER_BACKUP "n" DIR_SYM},
	{"backup player files - O", PLAYER_BACKUP "o" DIR_SYM},
	{"backup player files - P", PLAYER_BACKUP "p" DIR_SYM},
	{"backup player files - Q", PLAYER_BACKUP "q" DIR_SYM},
	{"backup player files - R", PLAYER_BACKUP "r" DIR_SYM},
	{"backup player files - S", PLAYER_BACKUP "s" DIR_SYM},
	{"backup player files - T", PLAYER_BACKUP "t" DIR_SYM},
	{"backup player files - U", PLAYER_BACKUP "u" DIR_SYM},
	{"backup player files - V", PLAYER_BACKUP "v" DIR_SYM},
	{"backup player files - W", PLAYER_BACKUP "w" DIR_SYM},
	{"backup player files - X", PLAYER_BACKUP "x" DIR_SYM},
	{"backup player files - Y", PLAYER_BACKUP "y" DIR_SYM},
	{"backup player files - Z", PLAYER_BACKUP "z" DIR_SYM},
#endif
	{"Pfiles of deleters above lvl 5", DELETE_DIR},
	{"", ""}
};

FlagTable autoset_types[] = {
	{"default", AUTODEFAULT, true},
	{"easy", AUTOEASY, true},
	{"normal", AUTOSET, true},
	{"hard", AUTOHARD, true},
	{"random", AUTORANDOM, true},
	{NULL, 0, 0}
};

FlagTable board_flags[] = {
	{"changed", BOARD_CHANGED, true},
	{"noweb", BOARD_NOWEB, true},
	{NULL, 0, 0}
};

FlagTable cmd_flags[] = {
	{"none", OLC_NONE, true},
	{"deleted", OLC_DELETED, false},
	{"noprefix", CMD_NOPREFIX, true},
	{"no_order", CMD_NO_ORDER, true},
	{"noalias", CMD_NOALIAS, true},
	{NULL, 0, 0}
};

FlagTable stat_types[] = {
	{"strength", STAT_STR, true},
	{"intelligence", STAT_INT, true},
	{"wisdom", STAT_WIS, true},
	{"dexterity", STAT_DEX, true},
	{"constitution", STAT_CON, true},
	{NULL, STAT_MAX, 0}
};

const struct wear_type wear_table[] = {
	{
	 WEAR_NONE, ITEM_TAKE},
	{WEAR_LIGHT, ITEM_LIGHT},
	{WEAR_FINGER_L, ITEM_WEAR_FINGER},
	{WEAR_FINGER_R, ITEM_WEAR_FINGER},
	{WEAR_NECK_1, ITEM_WEAR_NECK},
	{WEAR_NECK_2, ITEM_WEAR_NECK},
	{WEAR_BODY, ITEM_WEAR_BODY},
	{WEAR_HEAD, ITEM_WEAR_HEAD},
	{WEAR_LEGS, ITEM_WEAR_LEGS},
	{WEAR_FEET, ITEM_WEAR_FEET},
	{WEAR_HANDS, ITEM_WEAR_HANDS},
	{WEAR_ARMS, ITEM_WEAR_ARMS},
	{WEAR_SHIELD, ITEM_WEAR_SHIELD},
	{WEAR_ABOUT, ITEM_WEAR_ABOUT},
	{WEAR_WAIST, ITEM_WEAR_WAIST},
	{WEAR_WRIST_L, ITEM_WEAR_WRIST},
	{WEAR_WRIST_R, ITEM_WEAR_WRIST},
	{WEAR_WIELD, ITEM_WIELD},
	{WEAR_HOLD, ITEM_HOLD},
	{(wloc_t) - 2, -2}
};

const struct stance_type stance_table[MAX_STANCE] = {
	{"normal", STANCE_NORMAL, {STANCE_NONE, STANCE_NONE},
	 "You drop into a general fighting stance.",
	 "$n drops into a general fighting stance."},
	{"viper", STANCE_VIPER, {STANCE_NORMAL, STANCE_NORMAL},
	 "You arch your body into the viper fighting stance.",
	 "$n arches $s body into the viper fighting stance."},
	{"crane", STANCE_CRANE, {STANCE_NORMAL, STANCE_NORMAL},
	 "You swing your body into the crane fighting stance.",
	 "$n swings $s body into the crane fighting stance."},
	{"crab", STANCE_CRAB, {STANCE_NORMAL, STANCE_NORMAL},
	 "You squat down into the crab fighting stance.",
	 "$n squats down into the crab fighting stance."},
	{"mongoose", STANCE_MONGOOSE, {STANCE_NORMAL, STANCE_NORMAL},
	 "You twist into the mongoose fighting stance.",
	 "$n twists into the mongoose fighting stance."},
	{"bull", STANCE_BULL, {STANCE_NORMAL, STANCE_NORMAL},
	 "You hunch down into the bull fighting stance.",
	 "$n hunches down into the bull fighting stance."},
	{"mantis", STANCE_MANTIS, {STANCE_CRANE, STANCE_VIPER},
	 "You spin your body into the mantis fighting stance.",
	 "$n spins $s body into the mantis fighting stance."},
	{"dragon", STANCE_DRAGON, {STANCE_BULL, STANCE_CRAB},
	 "You coil your body into the dragon fighting stance.",
	 "$n coils $s body into the dragon fighting stance."},
	{"tiger", STANCE_TIGER, {STANCE_BULL, STANCE_VIPER},
	 "You lunge into the tiger fighting stance.",
	 "$n lunges into the tiger fighting stance."},
	{"monkey", STANCE_MONKEY, {STANCE_CRANE, STANCE_MONGOOSE},
	 "You rotate your body into the monkey fighting stance.",
	 "$n rotates $s body into the monkey fighting stance."},
	{"swallow", STANCE_SWALLOW, {STANCE_CRAB, STANCE_MONGOOSE},
	 "You slide into the swallow fighting stance.",
	 "$n slides into the swallow fighting stance."},
	{"current", STANCE_CURRENT, {STANCE_CURRENT, STANCE_CURRENT}, "", ""},
	{"autodrop", STANCE_AUTODROP, {STANCE_CURRENT, STANCE_CURRENT}, "", ""}
};

FlagTable signal_flags[] = {
#ifndef WIN32
	{"SIGPIPE", MakeBit(SIGPIPE), true},
	{"SIGCHLD", MakeBit(SIGCHLD), true},
	{"SIGHUP", MakeBit(SIGHUP), true},
	{"SIGQUIT", MakeBit(SIGQUIT), true},
	{"SIGBUS", MakeBit(SIGBUS), true},
	{"SIGUSR1", MakeBit(SIGUSR1), true},
	{"SIGUSR2", MakeBit(SIGUSR2), true},
#else
#define SA_NODEFER 0
#endif
	{"SIGINT", MakeBit(SIGINT), true},
	{"SIGILL", MakeBit(SIGILL), true},
	{"SIGFPE", MakeBit(SIGFPE), true},
	{"SIGSEGV", MakeBit(SIGSEGV), true},
	{"SIGTERM", MakeBit(SIGTERM), true},
	{"SIGABRT", MakeBit(SIGABRT), true},
#ifdef HAVE_SETITIMER
	{"SIGVTALRM", MakeBit(SIGVTALRM), true},
#elif defined HAVE_ALARM
	{"SIGALRM", MakeBit(SIGALRM), true},
#endif
	{NULL, 0, 0}
};

FlagTable cmd_categories[] = {
	{"hidden", CMDCAT_NOSHOW, true},
	{"none", CMDCAT_NONE, true},
	{"immortal", CMDCAT_IMMORTAL, true},
	{"combat", CMDCAT_COMBAT, true},
	{"settings", CMDCAT_SETTINGS, true},
	{"information", CMDCAT_INFO, true},
	{"movement", CMDCAT_MOVEMENT, true},
	{"communication", CMDCAT_COMMUNICATION, true},
	{"miscellaneous", CMDCAT_MISC, true},
	{"olc", CMDCAT_OLC, true},
	{"object", CMDCAT_OBJECT, true},
	{"clan", CMDCAT_CLAN, true},
	{NULL, 0, false}
};

FlagTable msp_types[] = {
	{"", MSP_NONE, false},
	{"none", MSP_NONE, true},
	{"combat", MSP_COMBAT, true},
	{"weather", MSP_WEATHER, true},
	{"skill", MSP_SKILL, true},
	{NULL, 0, false}
};

FlagTable help_types[] = {
	{"unknown", HELP_UNKNOWN, true},
	{"creation", HELP_CREATION, true},
	{"spells", HELP_SPELLS, true},
	{"commands", HELP_COMMANDS, true},
	{"newbie", HELP_NEWBIE, true},
	{"immortal", HELP_IMMORTAL, true},
	{"olc", HELP_OLC, true},
	{"clan", HELP_CLAN, true},
	{NULL, 0, 0}
};

FlagTable to_flags[] = {
	{"room", TO_ROOM, true},
	{"notvict", TO_NOTVICT, true},
	{"vict", TO_VICT, true},
	{"char", TO_CHAR, true},
	{"all", TO_ALL, true},
	{"zone", TO_ZONE, true},
	{NULL, 0, false}
};

FlagTable cmdline_flags[] = {
	{"no_bg_process", CMDLINE_NO_BACKGROUND_PROCESS, true},
	{"no_logfile", CMDLINE_NO_LOGFILE, true},
	{"log_console", CMDLINE_LOG_CONSOLE, true},
	{"quiet", CMDLINE_QUIET, false},
	{"startup_script", CMDLINE_STARTUP_SCRIPT, false},
	{"disable_signals", CMDLINE_DISABLE_SIGNALS, false},
	{"copyover", CMDLINE_COPYOVER, false},
	{"set_port", CMDLINE_SET_PORT, false},
	{NULL, 0, false}
};

FlagTable ethos_types[] = {
	{"lawful-good", ETHOS_LAWFUL_GOOD, true},
	{"neutral-good", ETHOS_NEUTRAL_GOOD, true},
	{"chaotic-good", ETHOS_CHAOTIC_GOOD, true},
	{"lawful-neutral", ETHOS_LAWFUL_NEUTRAL, true},
	{"true-neutral", ETHOS_TRUE_NEUTRAL, true},
	{"chaotic-neutral", ETHOS_EVIL_NEUTRAL, true},
	{"lawful-evil", ETHOS_LAWFUL_EVIL, true},
	{"neutral-evil", ETHOS_NEUTRAL_EVIL, true},
	{"chaotic-evil", ETHOS_CHAOTIC_EVIL, true},
	{NULL, 0, false}
};

const struct timer_type timer_table[MAX_TIMER] = {
	{"none", TIMER_NONE, false},
	{"pk", TIMER_PK, true, "You are no longer a player killer."},
	{"outlaw", TIMER_OUTLAW, false, "You are no longer an outlaw."},
};

FlagTable social_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, false}
};

FlagTable song_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, false}
};

FlagTable skill_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, false}
};

FlagTable group_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, false}
};

FlagTable channel_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, false}
};

FlagTable color_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{"immortal", COLOR_IMMORTAL, true},
	{NULL, 0, false}
};

FlagTable help_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, false}
};

FlagTable race_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, false}
};

FlagTable class_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, false}
};

FlagTable deity_flags[] = {
	{"none", OLC_NONE, false},
	{"changed", OLC_CHANGED, true},
	{"deleted", OLC_DELETED, true},
	{NULL, 0, false}
};

FlagTable custom_colors[] = {
	{"clear", _DEFAULT, true},
	{"gossip", _GOSSIP, true},
	{"music", _MUSIC, true},
	{"qa", _QA, true},
	{"quote", _QUOTE, true},
	{"gratz", _GRATS, true},
	{"shout1", _SHOUT1, true},
	{"shout2", _SHOUT2, true},
	{"immtalk", _IMMTALK, true},
	{"tells1", _TELLS1, true},
	{"tells2", _TELLS2, true},
	{"say1", _SAY1, true},
	{"say2", _SAY2, true},
	{"skills", _SKILL, true},
	{"yhit", _YHIT, true},
	{"ohit", _OHIT, true},
	{"vhit", _VHIT, true},
	{"whorace", _WRACE, true},
	{"whoclass", _WCLASS, true},
	{"wholvl", _WLEVEL, true},
	{"roomtitle", _RTITLE, true},
	{"score1", _SCORE1, true},
	{"score2", _SCORE2, true},
	{"score3", _SCORE3, true},
	{"score4", _SCOREB, true},
	{"wiznet", _WIZNET, true},
	{"gtell1", _GTELL1, true},
	{"gtell2", _GTELL2, true},
	{"btalk", _BTALK, true},
	{"whosex", _WSEX, true},
	{"automap", _AUTOMAP, true},
	{"autoexits", _AUTOEXITS, true},
	{"mobiles", _MOBILES, true},
	{"objects", _OBJECTS, true},
	{"socials", _SOCIALS, true},
	{"olcborder", _OLCBORDER, true},
	{"olcvar", _OLCVAR, true},
	{"olcval", _OLCVAL, true},
	{NULL, 0, false}
};