alRom/bin/
alRom/data/class/
alRom/data/command/
alRom/data/guild/
alRom/data/help/
alRom/data/lang/
alRom/data/race/
alRom/data/religion/
alRom/data/skill/
alRom/note/
/***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik Stfeldt, Tom Madsen, and Katja Nyboe.   *
 *                                                                         *
 *  Merc Diku Mud improvments 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          *
 *  benefitting.  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			   *
***************************************************************************/

#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <stdio.h>
#include <time.h>
#include "merc.h"
#include "tables.h"
#include "const.h"

/* for position */
const struct position_type position_table[] =
{
    {	"dead",			"dead"	},
    {	"mortally wounded",	"mort"	},
    {	"incapacitated",	"incap"	},
    {	"stunned",		"stun"	},
    {	"sleeping",		"sleep"	},
    {	"resting",		"rest"	},
    {   "sitting",		"sit"   },
    {	"fighting",		"fight"	},
    {	"standing",		"stand"	},
    {	NULL,			NULL	}
};

/* for sex */
const struct sex_type sex_table[] =
{
   {	"none"		},
   {	"male"		},
   {	"female"	},
   {	"either"	},
   {	NULL		}
};

//Stances by Majik
const struct stance_type stance_table[] = 
{
    { "neutral"		},
    { "aggressive"	},
    { "defensive"	},
    {  NULL }
};

/* for sizes */
const struct size_type size_table[] =
{ 
    {	"tiny"		},
    {	"small" 	},
    {	"medium"	},
    {	"large"		},
    {	"huge", 	},
    {	"giant" 	},
    {	NULL		}
};

/* various flag tables */
const struct flag_type act_flags[] =
{
    {   "forger",               D,      TRUE    },
    {	"npc",			A,	FALSE	},
    {	"sentinel",		B,	TRUE	},
    {	"scavenger",		C,	TRUE	},
    {   "bounty",               E,      TRUE    },
    {	"aggressive",		F,	TRUE	},    
    {	"stay_area",		G,	TRUE	},
    {	"wimpy",		H,	TRUE	},
    {	"pet",			I,	TRUE	},
    {	"train",		J,	TRUE	},
    {	"practice",		K,	TRUE	},
    {	"mount",		L,	TRUE	},    
    {	"undead",		O,	TRUE	},
    {	"cleric",		Q,	TRUE	},
    {	"mage",			R,	TRUE	},
    {	"thief",		S,	TRUE	},
    {	"warrior",		T,	TRUE	},
    {	"noalign",		U,	TRUE	},
    {	"nopurge",		V,	TRUE	},
    {	"outdoors",		W,	TRUE	},
    {	"indoors",		Y,	TRUE	},
    {	"healer",		aa,	TRUE	},
    {	"gain",			bb,	TRUE	},
    {	"update_always",	cc,	TRUE	},
    {	"changer",		dd,	TRUE	},
    {   "leveler",              ee,     TRUE    },
    {	NULL,			0,	FALSE	}
};

const struct flag_type plr_flags[] =
{
    {	"npc",			A,	FALSE	},
    {	"autoassist",		C,	FALSE	},
    {   "autodamage",		D,	FALSE	},
    {	"autoexit",		E,	FALSE	},
    {	"autoloot",		F,	FALSE	},
    {	"autosac",		G,	FALSE	},
    {	"autogold",		H,	FALSE	},
    {	"autosplit",		I,	FALSE	},
    {	"holylight",		N,	FALSE	},
    {	"can_loot",		P,	FALSE	},
    {	"nosummon",		Q,	FALSE	},
    {	"nofollow",		R,	FALSE	},
    {	"colour",		T,	FALSE	},
    {	"permit",		U,	TRUE	},
    {	"log",			W,	FALSE	},
    {	"deny",			X,	FALSE	},
    {	"freeze",		Y,	FALSE	},
    {	"thief",		Z,	FALSE	},
    {	"killer",		aa,	FALSE	},
    {   "questor",              J,      FALSE   },
    {   "gquest",               B,      FALSE   },
    {   "war",                  dd,     FALSE   },
    {   "frequent",             M,      FALSE   },
    {   "timeout",              O,      FALSE   },
    {   "autoweather",          ee,     FALSE   },
    {	NULL,			0,	0	}
};

const struct flag_type off_flags[] =
{
    {	"area_attack",		A,	TRUE	},
    {	"backstab",		B,	TRUE	},
    {	"bash",			C,	TRUE	},
    {	"berserk",		D,	TRUE	},
    {	"disarm",		E,	TRUE	},
    {	"dodge",		F,	TRUE	},
    {	"fade",			G,	TRUE	},
    {	"fast",			H,	TRUE	},
    {	"kick",			I,	TRUE	},
    {	"dirt_kick",		J,	TRUE	},
    {	"parry",		K,	TRUE	},
    {	"rescue",		L,	TRUE	},
    {	"tail",			M,	TRUE	},
    {	"trip",			N,	TRUE	},
    {	"crush",		O,	TRUE	},
    {	"assist_all",		P,	TRUE	},
    {	"assist_align",		Q,	TRUE	},
    {	"assist_race",		R,	TRUE	},
    {	"assist_players",	S,	TRUE	},
    {	"assist_guard",		T,	TRUE	},
    {	"assist_vnum",		U,	TRUE	},
    {	NULL,			0,	0	}
};

const struct flag_type 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	}
};
const struct flag_type affect_flags[] =
{

    {	NULL,			0,	0	}
};
const struct flag_type 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	}
};

const struct flag_type 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	},
    {   "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	},
    {   "nopray",               COMM_NOPRAY,            TRUE    },
    {	NULL,			0,			0	}
};

const struct flag_type comm2_flags[] =
{ 
/*  {   "test",                 COMM_TEST,              TRUE    } */
    {   "imp",                  COMM_NOIMP,             TRUE    },
    {   "show_armor",           COMM_SHOW_ARMOR,        TRUE    },
    {   "newbie",               COMM_NONEWBIE,          TRUE    },
    {   "auto_afk",             COMM_AUTO_AFK,          TRUE    },
    {   "announce",             COMM_ANNOUNCE,          TRUE    },
    {   "autolevel",            COMM_AUTOLEVEL,         TRUE    },
    {   "petlevel",             COMM_PETLEVEL,          TRUE    },
    {   "noadmin",              COMM_NOADMIN,           TRUE    },
    {   NULL,                   0,                      0       }
};                                                                   

const	struct	hometown_type	hometown_table [] =
{
/*  {	"name",		recall,	school,	morgue,	death, donation, postal	},	*/
    {	"Midgaard",	3001,	3700,	3000,	3054,  3037,	 3037	},
    {	NULL,		0,	0,	0,	0,     0,	 0      }
};


const struct flag_type 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	}
};

const struct flag_type area_flags[] =
{
    {	"none",			AREA_NONE,		FALSE	},
    {	"changed",		AREA_CHANGED,		TRUE	},
    {	"added",		AREA_ADDED,		TRUE	},
    {	"loading",		AREA_LOADING,		FALSE	},
    {   "complete",		AREA_COMPLETE,		TRUE    },
    {   "unique",               NO_UNIQUE,              TRUE    },
    {	NULL,			0,			0	}
};


const struct flag_type sex_flags[] =
{
    {	"male",			SEX_MALE,		TRUE	},
    {	"female",		SEX_FEMALE,		TRUE	},
    {	"neutral",		SEX_NEUTRAL,		TRUE	},
    {   "random",               3,                      TRUE    },   /* ROM */
    {	"none",			SEX_NEUTRAL,		TRUE	},
    {	NULL,			0,			0	}
};


const struct flag_type 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	},
    {   "nobash",               EX_NOBASH,              TRUE    },
	{	"hidden",		EX_HIDDEN,			TRUE },
    {	NULL,			0,			0	}
};



const struct flag_type door_resets[] =
{
    {	"open and unlocked",	0,		TRUE	},
    {	"closed and unlocked",	1,		TRUE	},
    {	"closed and locked",	2,		TRUE	},
    {	NULL,			0,		0	}
};



const struct flag_type room_flags[] =
{
    {	"dark",			ROOM_DARK,		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	},
    {	"mount_shop",		ROOM_MOUNT_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	},
    {   "donation",             ROOM_DONATION,          TRUE    },
    {   "rental",               ROOM_RENTAL,            TRUE    },
    {   "casino",               ROOM_CASINO,            TRUE    },
    {   "nomagic",              ROOM_NOMAGIC,           TRUE    },
    {   "arena",                ROOM_ARENA,             TRUE    },
    {   "waypoint",             ROOM_WAYPOINT,          TRUE    },
    {   "mapped",		ROOM_MAPPED,		FALSE   },
    {   "mine",			ROOM_MINE,		TRUE    },
    {   "bank",                 ROOM_BANK,              TRUE    },
    {   "postal",               ROOM_POSTAL,            TRUE    },
    {	NULL,			0,			0	}
};



const struct flag_type 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	},
    {   "unused",	SECT_UNUSED,		TRUE	},
    {	"air",		SECT_AIR,		TRUE	},
    {	"desert",	SECT_DESERT,		TRUE	},
    {   "farmland",	SECT_FARM,		TRUE	},
	{	"dock",		SECT_DOCK,		TRUE	},
	{	"beach",	SECT_BEACH,		TRUE	},
	{	"road",		SECT_ROAD,		TRUE	},
    {	NULL,		0,			0	}
};

const struct rgb_type rgbsect_table[] =
{
    {	SECT_INSIDE,		99, 101, 99,	"{w.{x", "{c#{x"	},
    {	SECT_CITY,		156, 154, 156,	"{c#{x", "{c#{x"	},
    {	SECT_FIELD,		0, 255, 0,		"{g\"{x", "{g\"{x"	},
    {	SECT_FOREST,		0, 130, 0,		"{g&{x", "{g&{x"	},
    {	SECT_HILLS,		53, 83, 47,	"{g^{x", "{g^{x"	},
    {	SECT_MOUNTAIN,		0, 0, 0,	"{D^{x", "{D^{x"	},
    {	SECT_WATER_SWIM,	0, 207, 206,	"{b:{x", "{B:{x"	},
    {	SECT_WATER_NOSWIM,	0, 0, 250,	"{b:{x", "{b:{x"	},
    {   SECT_UNUSED,		0, 0, 0	,	" ", " "		},
    {	SECT_AIR,		0, 255, 255,		"{C#{x", "{C.{x"	},
    {	SECT_DESERT,		255, 255, 0,	"{Y.{x", "{Y.{x"	},
    {   SECT_FARM,		0, 70, 0,		"{y~{x", "{y~{x"	},
    {	SECT_DOCK,		140, 89, 0,	"{y#{x", "{y#{x"	},
    {	SECT_BEACH,		255, 247, 140,	"{y.{x", "{y.{x"	},
    {	SECT_ROAD,		160, 130, 0,	"{y+{x", "{c#{x"	},
    {	-1,			0, 0, 0,	NULL, NULL		}
};


const struct flag_type 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	},
    {   "quest",                ITEM_QUEST,             TRUE    },
    {	"nouncurse",		ITEM_NOUNCURSE,		TRUE	},
    {   "auctioned",            ITEM_AUCTIONED,         FALSE   },
    {   "no_auction",           ITEM_NO_AUCTION,        TRUE    },
    {	"lodged",		ITEM_LODGED,		TRUE	},
    {   "nocond",               ITEM_NOCOND,            TRUE    },
    {   "norepair",             ITEM_NOREPAIR,          TRUE    },
    {	NULL,			0,			0	}
};

const struct flag_type extra2_flags[] =
{  
    {   "unique",               ITEM_UNIQUE,            TRUE    },
    {   "no_animate",           CORPSE_NO_ANIMATE,      TRUE    },
    {   "sanctuary",		ITEM_SANC,		TRUE	},        
    {   "relic",                ITEM_RELIC,             TRUE    },
    {   NULL,                   0,                      0       }
}; 

const struct flag_type 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	},
    {   "shoulder",             ITEM_WEAR_SHOULDER,     TRUE    },
    {	"wearfloat",		ITEM_WEAR_FLOAT,	TRUE	},
    {   "hood",			ITEM_WEAR_HOOD,		TRUE	},
    {   "cloak",		ITEM_WEAR_CLOAK,	TRUE	},
    {   "armlayer",		ITEM_LAYER_ARMS,	TRUE    },
    {   "bodylayer",		ITEM_LAYER_BODY,	TRUE	},
    {   "leglayer",		ITEM_LAYER_LEGS,	TRUE	},
    {   "back",			ITEM_WEAR_BACK,		TRUE	},
    {	NULL,			0,			0	}
};

/*
 * Used when adding an affect to tell where it goes.
 * See addaffect and delaffect in act_olc.c
 */
const struct flag_type 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	},
    {   "clevel",               APPLY_CAST_LEVEL,       TRUE    },
    {   "cability",             APPLY_CAST_ABILITY,     TRUE    },
    {	"spellaffect",		APPLY_SPELL_AFFECT,	FALSE	},
    {	"quiver",		UTYPE_QUIVER,		TRUE	},
    {	"arrow",		UTYPE_ARROW,		TRUE	},
    {	NULL,			0,			0	}
};


/*
 * What is seen.
 */
const struct flag_type wear_loc_strings[] =
{
    {	"in the inventory",	WEAR_NONE,	TRUE	},
    {	"as a light",		WEAR_LIGHT,	TRUE	},
    {   "worn as hood",         WEAR_HOOD,      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	},
    {   "worn around body",     WEAR_LAYER_BODY,TRUE    },
	{	"on the body",		WEAR_BODY,	TRUE	},
    {	"over the head",	WEAR_HEAD,	TRUE	},
    {   "worn as cloak",        WEAR_CLOAK,     TRUE    },
    {   "worn around legs",     WEAR_LAYER_LEGS,TRUE    },
	{	"on the legs",		WEAR_LEGS,	TRUE	}, 
    {	"on the feet",		WEAR_FEET,	TRUE	},
    {	"on the hands",		WEAR_HANDS,	TRUE	},
    {   "worn around arms",     WEAR_LAYER_ARMS,TRUE    },
	{	"on the arms",		WEAR_ARMS,	TRUE	},
    {	"as a shield",		WEAR_SHIELD,	TRUE	},
    {	"about the shoulders",	WEAR_ABOUT,	TRUE	},
    {   "worn on back",         WEAR_BACK,      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	},
    {   "on your shoulder",     WEAR_SHOULDER,  TRUE    },
    {	NULL,			0	      , 0	}
};


const struct flag_type wear_loc_flags[] =
{
    {	"none",		WEAR_NONE,	TRUE	},
    {	"light",	WEAR_LIGHT,	TRUE	},
    {   "hood",         WEAR_HOOD,      TRUE    },
    {	"lfinger",	WEAR_FINGER_L,	TRUE	},
    {	"rfinger",	WEAR_FINGER_R,	TRUE	},
    {	"neck1",	WEAR_NECK_1,	TRUE	},
    {	"neck2",	WEAR_NECK_2,	TRUE	},
    {   "laybody",      WEAR_LAYER_BODY,TRUE    },
    {	"body",		WEAR_BODY,	TRUE	},
    {	"head",		WEAR_HEAD,	TRUE	},
    {   "cloak",        WEAR_CLOAK,     TRUE    },
    {   "llegs",        WEAR_LAYER_LEGS,TRUE    },
    {	"legs",		WEAR_LEGS,	TRUE	},
    {	"feet",		WEAR_FEET,	TRUE	},
    {	"hands",	WEAR_HANDS,	TRUE	},
    {   "laarms",       WEAR_LAYER_ARMS,TRUE    },
    {	"arms",		WEAR_ARMS,	TRUE	},
    {	"shield",	WEAR_SHIELD,	TRUE	},
    {	"about",	WEAR_ABOUT,	TRUE	},
    {   "back",         WEAR_BACK,      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	},
    {   "shoulder",     WEAR_SHOULDER,  TRUE    },
    {	"lodge_leg",	WEAR_LODGE_LEG,	TRUE	},
    {	"lodge_arm",	WEAR_LODGE_ARM,	TRUE	},
    {	"lodge_rib",	WEAR_LODGE_RIB,	TRUE	},
    {	NULL,		0,		0	}
};

const struct flag_type container_flags[] =
{
    {	"closeable",		1,		TRUE	},
    {	"pickproof",		2,		TRUE	},
    {	"closed",		4,		TRUE	},
    {	"locked",		8,		TRUE	},
    {	"puton",		16,		TRUE	},
    {	NULL,			0,		0	}
};


/*****************************************************************************
                      ROM - specific tables:
 
****************************************************************************/




const struct flag_type ac_type[] =
{
    {   "pierce",        AC_PIERCE,            TRUE    },
    {   "bash",          AC_BASH,              TRUE    },
    {   "slash",         AC_SLASH,             TRUE    },
    {   "exotic",        AC_EXOTIC,            TRUE    },
    {   NULL,              0,                    0       }
};


const struct flag_type 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       },
};


const struct flag_type weapon_class[] =
{
    {   "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    },
    {   "bow",          WEAPON_BOW,             TRUE    },
	{	"staff",	WEAPON_STAFF,		TRUE	},
    {   NULL,		0,			0       }
};


const struct flag_type weapon_type2[] =
{
    {   "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       }
};

const struct flag_type res_flags[] =
{	{ "bash",			DAM_BASH,		TRUE	},
	{ "pierce",			DAM_PIERCE,		TRUE	},
	{ "slash",			DAM_SLASH,		TRUE	},
	{ "fire",			DAM_FIRE,		TRUE	},
	{ "cold",			DAM_COLD,		TRUE	},
	{ "electric",		DAM_ELECTRIC,	TRUE	},
	{ "light",			DAM_LIGHT,		TRUE	},
	{ "life",			DAM_LIFE,		TRUE	},
	{ "death",			DAM_DEATH,		TRUE	},
	{ "water",			DAM_WATER,		TRUE	},
	{ "earth",			DAM_EARTH,		TRUE	},
	{ NULL,				0,				0       }
};

const struct flag_type position_flags[] =
{
    {   "dead",           POS_DEAD,            FALSE   },
    {   "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,        FALSE   },
    {   "standing",       POS_STANDING,        TRUE    },
    {   NULL,              0,                    0     }
};

const struct flag_type 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	}
};

const struct flag_type 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	}
};

const	struct	flag_type	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	},
        {       "affects2",     TO_AFFECTS2,    TRUE    },
        {       "object2",      TO_OBJECT2,     TRUE    },
	{	NULL,		0,		TRUE	}
};

const	struct	bit_type	bitvector_type	[]	=
{
	{	affect_flags,	"affect"	},
	{	apply_flags,	"apply"		},
	{	weapon_type2,	"weapon"	}
};

const struct flag_type material_type[] =   
{
    {   "none",         0,              TRUE    },
    {   "steel",        MAT_STEEL,      TRUE    },
    {   "stone",        MAT_STONE,      TRUE    },
    {   "brass",        MAT_BRASS,      TRUE    },
    {   "bone",         MAT_BONE,       TRUE    },
    {   "energy",       MAT_ENERGY,     TRUE    },
    {   "mithril",      MAT_MITHRIL,    TRUE    },
    {   "copper",       MAT_COPPER,     TRUE    },        
    {   "silk",         MAT_SILK,       TRUE    },
    {   "marble",       MAT_MARBLE,     TRUE    },
    {   "glass",        MAT_GLASS,      TRUE    },
    {   "water",        MAT_WATER,      TRUE    },
    {   "flesh",        MAT_FLESH,      TRUE    },
    {   "platinum",     MAT_PLATINUM,   TRUE    },
    {   "granite",      MAT_GRANITE,    TRUE    },
    {   "leather",      MAT_LEATHER,    TRUE    },
    {   "cloth",        MAT_CLOTH,      TRUE    },
    {   "gemstone",     MAT_GEMSTONE,   TRUE    },    
    {   "gold",         MAT_GOLD,       TRUE    },
    {   "porcelain",    MAT_PORCELAIN,  TRUE    },
    {   "obsidian",     MAT_OBSIDIAN,   TRUE    },
    {   "dragonscal",   MAT_DRAGONSCALE,TRUE    },
    {   "ebony",        MAT_EBONY,      TRUE    },
    {   "bronze",       MAT_BRONZE,     TRUE    },
    {   "wood",         MAT_WOOD,       TRUE    },
    {   "silver",       MAT_SILVER,     TRUE    },
    {   "iron",         MAT_IRON,       TRUE    },
    {   "bloodstone",   MAT_BLOODSTONE, TRUE    }, 
    {   "food",         MAT_FOOD,       TRUE    },
    {   "lead",         MAT_LEAD,       TRUE    },
    {   "wax",          MAT_WAX,        TRUE    },
    {   "diamond",      MAT_DIAMOND,    TRUE    },
    {   "crystal",      MAT_CRYSTAL,    TRUE    },
    {   "vellum",       MAT_VELLUM,     TRUE    },
    {   "paper",        MAT_PAPER,      TRUE    },
    {   "meat",         MAT_MEAT,       TRUE    },
    {   "pill",         MAT_PILL,       TRUE    },
    {   "liquid",       MAT_LIQUID,     TRUE    },
    {   "adamantite",   MAT_ADAMANTITE, TRUE    },
    {   "unique",       MAT_UNIQUE,     TRUE    },
    {   "unknown",      MAT_UNKNOWN,    TRUE    },
    {   NULL,            0,             0       }
};                                     


const struct flag_type oprog_flags[] =
{
    {	"act",			TRIG_ACT,		TRUE	},
    {	"fight",		TRIG_FIGHT,		TRUE	},
    {	"give",			TRIG_GIVE,		TRUE	},
    {   "greet",		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	},
    {   "alias",		TRIG_ALIAS,		TRUE    },
	{	"wear",			TRIG_WEAR,		TRUE	},
	{	"remove",		TRIG_REMOVE,	TRUE	},
    {	NULL,			0,			TRUE	},
};

const struct flag_type rprog_flags[] =
{
    {	"act",			TRIG_ACT,		TRUE	},
    {	"fight",		TRIG_FIGHT,		TRUE	},
    {	"drop",			TRIG_DROP,		TRUE	},
    {	"greet",		TRIG_GRALL,		TRUE	},
    {	"random",		TRIG_RANDOM,		TRUE	},
    {	"speech",		TRIG_SPEECH,		TRUE	},
    {	"exall",		TRIG_EXALL,		TRUE	},
    {	"delay",		TRIG_DELAY,		TRUE	},
    {   "alias",		TRIG_ALIAS,		TRUE    },
    {	NULL,			0,			TRUE	},
};

const char *osize_table []   =
{
        "tiny",
        "small",
        "medium",
        "large",
        "huge",
        "giant"
}; 

const char *cond_table []   =
{
    "Perfect",
    "Excellent",
    "Slightly damaged",
    "Moderately damaged",
    "Heavily damaged",
    "Badly damaged",
    "Barely usable",
    "Worthless"
};   

const	struct	chan_type chan_table[] =
{
	{	"{W[{yOOC{W]{x",   	"W",	"y",	COMM_NOOOC},
	{	"{c[{CGossip{c]{x",	"W",	"C",	COMM_NOGOSSIP},
	{	"{w[{BQuote{w]{x",		"B",	"w",	COMM_NOQUOTE},
	{	"{b[{BMusic{b]{x",	"W",	"B",	COMM_NOMUSIC},
	{	"{G[{gQA{G]{x",		"g",	"G",    COMM_NOQUESTION},
	{	"{r[{RAuction{r]{x",	"r",	"R",	COMM_NOAUCTION},
	{	"{M[{mGrats{M]",	"M",	"m",	COMM_NOGRATS},
	{	"{W[{CImm{cChat{W]{x",	"c",	"C",	COMM_NOWIZ},
	{	"{r[{RClan{r]{x",		"w",	"w",	COMM_NOCLAN},
	{	"{r[{rIMP{r]{x",		"Y",	"Y",	COMM_NOIMP},
    {   "[HERO]",		"B",    "c",	COMM_NOHERO},
    {   "[Newbie]",       "B",    "c",    COMM_NONEWBIE},
    {   "{r[{DADMIN{r]{x",        "w",    "D",    COMM_NOADMIN},
    {   "{G[{gGodChat{G]{x",		"g",	"y",    COMM_NOWIZ },
	{   "[CommChat]",	"w",    "D",	COMM_NOOOC },
	{	NULL,			" ",	" ",	0            }
};

const struct	flag_type strap_table  	[] 	=
{
    { "none",	STRAP_NONE,	   TRUE },
    { "thigh",	STRAP_THIGH, 	   TRUE },
    { "ankle",	STRAP_ANKLE,	   TRUE },
    { "shoulder", STRAP_SHOULDER,  TRUE },
    { "rwrist",	STRAP_WRIST_R,	   TRUE },
    { "lwrist",	STRAP_WRIST_L,	   TRUE },
    {	NULL,	0,		   0    }
}; 

const struct flag_type guild_flags[] =
{
   {    "Independent",		GUILD_INDEPENDENT,	TRUE 	},
   {	"Modified",		GUILD_CHANGED,		FALSE	},
   {	"Delete",		GUILD_DELETED,		TRUE	},
   {    "Immortal",		GUILD_IMMORTAL,		TRUE	},
   {	NULL,			0,			FALSE   }
};
const struct flag_type auctn_table[] =
{
    {  "once", 0, 0 },
    {  "twice", 0, 0 },
    {  "three times", 0, 0 }
};


const char *admin_table[] =
{
        "Sola",
        "Davion",
        "Mobius",
		""
};

const char *stat_table[MAX_STATS] =
{	"strength",
	"intellegence",
	"wisdome",
	"dexterity",
	"constitution"
};

const struct vnum_type vnum_table[] = 
{
	{	&MOB_VNUM_WARMASTER,			VNUM_MOB},
	{	&MOB_VNUM_SKELETON,			VNUM_MOB},
	{	&MOB_VNUM_RENTER,			VNUM_MOB},
	{	&MOB_VNUM_DEMON,			VNUM_MOB},
	{	&MOB_VNUM_ANGEL,			VNUM_MOB},
	{	&MOB_VNUM_FBEAST,			VNUM_MOB},
	{	&MOB_VNUM_SYPHLOYD,			VNUM_MOB},
	{	&MOB_VNUM_TYPHLOYD,			VNUM_MOB},
	{	&MOB_VNUM_GOLEM,			VNUM_MOB},
	{	&MOB_VNUM_SHADOW,			VNUM_MOB},
	{	&MOB_VNUM_AURORA,			VNUM_MOB},
   	{	&ROOM_VNUM_LIMBO,			VNUM_ROOM },
	{	&ROOM_VNUM_TEMPLE,			VNUM_ROOM },
	{	&ROOM_VNUM_SCHOOL,			VNUM_ROOM },
	{	&ROOM_VNUM_MORGUE,			VNUM_ROOM },
	{	&ROOM_VNUM_DONATION,			VNUM_ROOM },
	{	&ROOM_VNUM_BANK,				VNUM_ROOM },
	{	&ROOM_VNUM_WAITROOM,			VNUM_ROOM },
	{	&ROOM_VNUM_RENTBOX,			VNUM_ROOM },
	{	&ROOM_VNUM_RENTER,			VNUM_ROOM },
    {       &ROOM_VNUM_TIMEOUT,                      VNUM_ROOM },
	{	&ROOM_VNUM_OCEAN,			VNUM_ROOM },
	{	&OBJ_VNUM_SILVER_ONE,		VNUM_OBJ },
	{	&OBJ_VNUM_GOLD_ONE,			VNUM_OBJ },
	{	&OBJ_VNUM_GOLD_SOME,			VNUM_OBJ },
	{	&OBJ_VNUM_SILVER_SOME,		VNUM_OBJ },
	{	&OBJ_VNUM_COINS,				VNUM_OBJ },
	{	&OBJ_VNUM_CORPSE_NPC,		VNUM_OBJ },
	{	&OBJ_VNUM_CORPSE_PC,			VNUM_OBJ },
	{	&OBJ_VNUM_SEVERED_HEAD,		VNUM_OBJ },
	{	&OBJ_VNUM_TORN_HEART,		VNUM_OBJ },
	{	&OBJ_VNUM_SLICED_ARM,		VNUM_OBJ },
	{	&OBJ_VNUM_SLICED_LEG,		VNUM_OBJ },
	{	&OBJ_VNUM_GUTS,				VNUM_OBJ },
	{	&OBJ_VNUM_BRAINS,			VNUM_OBJ },
	{	&OBJ_VNUM_SCHOOL_MACE,		VNUM_OBJ },
	{	&OBJ_VNUM_SCHOOL_DAGGER,		VNUM_OBJ },
	{	&OBJ_VNUM_SCHOOL_SWORD,		VNUM_OBJ },
	{	&OBJ_VNUM_SCHOOL_SPEAR,		VNUM_OBJ },
	{	&OBJ_VNUM_SCHOOL_AXE,		VNUM_OBJ },
	{	&OBJ_VNUM_SCHOOL_FLAIL,		VNUM_OBJ },
	{	&OBJ_VNUM_SCHOOL_WHIP,		VNUM_OBJ },
	{	&OBJ_VNUM_SCHOOL_POLEARM,	VNUM_OBJ },
	{	&OBJ_VNUM_SCHOOL_SHIELD,		VNUM_OBJ },
	{	&OBJ_VNUM_BOW,				VNUM_OBJ },
	{	&OBJ_VNUM_BREW,				VNUM_OBJ },
	{	&OBJ_VNUM_ARROW,				VNUM_OBJ },
	{	&OBJ_VNUM_BLOOD_TRAIL,	      	        VNUM_OBJ },
	{	&OBJ_UNIQUE_DUMMY,			VNUM_OBJ },
	{	&OBJ_VNUM_SKELETON,			VNUM_OBJ },
	{       &OBJ_VNUM_ORE,				VNUM_OBJ },
	{	&OBJ_VNUM_STAFF,			VNUM_OBJ	},
	{	&OBJ_VNUM_BLADE,			VNUM_OBJ	},
	{	&OBJ_VNUM_AXE,	          		VNUM_OBJ	},
	{	&OBJ_VNUM_HILT,				VNUM_OBJ	},
	{ 	NULL , -1 						}
};

const struct size_type cont_table[] =
{
    {   "Lurin"  },
    {	"Acire"  },
    {	"Ishani"  },
    {	"Dhriag"   },
    {   "none"	   }
};

const struct flag_type target_table[] =
{
 { "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_ofensive", TAR_OBJ_CHAR_OFF, TRUE },
 { NULL, 0, 0 },
};


const struct smith_type smith_table[] =
{
     /* Name */             /* cost */
    { "Hitroll",		10      },
    { "Damroll",                10	},
    { "Dex",                    2       },
    { "Int",                    2	},
    { "Wis",                    2	},
    { "Con",                    2	},
    { "Str",                    2	},
    { "Hp",                     4	},
    { "Mana",                   4	},
    { "Move",                   4 	},
    { "Ac",                     1 	},
    { "Saves",                  10 	},
    { "Clevel",                 10	},
    { "Cability",               10 	},
    { "Invisible",              15 	},
    { "Detect_evil",            12 	},
    { "Detect_invis",           14 	},
    { "Detect_magic",           12 	},
    { "Detect_hidden",          13 	},
    { "Detect_good",            14	},
    { "Sanctuary",              20 	},
    { "Protect_evil",           15 	},
    { "Protect_good",           12 	},
    { "Sneak",                  13 	},
    { "Hide",                   10 	},
    { "Infrared",               12 	},
    { "Flying",                 11 	},
    { "Haste",                  15 	},
    { "Pass_door",              13 	},
    { "Swim",                   14 	},
    { "Regeneration",           18 	},
    { "Berserk",                17 	},
    { NULL, 0 },
};

const struct rain_type rain_table[ MAX_RAIN ] =
{
   { "There is a cold rain trickling down.",  		},
   { "There is a warm rain trickling down.",  		},
   { "Giant drops of rain are pouring from the sky.", 	},
   { "Ring sized drops of rain are falling from the sky.",    },
   { "Soft warm rain is slowly coming down.", 	 	},
   { "Hand sized drops of rain are falling from the sky.",    },
   { "Boot sized drops of rain are falling from the sky.",    }
};


const struct cloud_type cloud_table[ MAX_CLOUD ] =
{
   { "An overcast sheet of clouds heavily blankets the sky.", },
   { "Wisps of clouds delicately curl and drift above.", }
};

const struct cloudy_description cloudy_table[ MAX_CLOUDY ] =
{
   { "A clear azure sky blankets the land.",	},
   { "The pristine blue of the sky above spreads, unmarred by a cloud or a bird." } 
};

const struct hailstorm_description hailstorm_table[ MAX_HAILSTORM ] =
{
   { "Small pellets of ice fall from the sky and bounce as they hit the ground.",		},
   { "Balls of hail blanket the ground covering the landscape.", }
};

const struct thunderstorm_description thunderstorm_table[ MAX_THUNDERSTORM ] =
{
   { "A large thunderstorm approaches you from a distance.",	},
   { "A deep roar of thunder causes the very earth to tremble.", 	},
   { "Flashes of light stab and illuminate the sky.",               }
};

const struct icestorm_description icestorm_table[ MAX_ICESTORM ] =
{
   { "Waves of ice fall continually from the sky.",	},
   { "Shards of ice mercilessly batter the land.", }
};

const struct snow_description snow_table[ MAX_SNOW ] =
{
   { "Soft flakes of snow drift from above, covering the land in a wash of white.", },
   { "Large snowflakes swirl and drift, obscuring the nearby landscape.", }
};

const struct blizzard_description blizzard_table[ MAX_BLIZZARD ] =
{
   { "Large drifts of snow cover the ground blown out by driving winds.", },
   { "Blinding snow drives into the land, carried on howling gusts." }
};

const struct foggy_description foggy_table[ MAX_FOGGY ] =
{
   { "A misty haze covers the horizon.",	},
   { "Rolling fog claims the land clinging to the ground.", }
};

const struct lightning_description lightning_table[ MAX_LIGHTNING ] =
{
   { "A bolt of lightning pierces the sky as a large storm approaches.",  },
   { "Violent flashes of light rent the dark clouds.",			    }
};

const struct breeze_description breeze_table[ MAX_BREEZE ] =
{
   { "A warm breeze flows through the land blanketing it with heat.",		},
   { "A cold breeze flows through the land blanketing it with frost.",		}
};

const struct wind_description wind_table[ MAX_WIND ] =
{
   { "Gusts of wind sweep across the ground, pushing against any resistance.", },
   { "Pressing winds push against the land, sighing mounfully with their passage.", }
};

const struct size_type mineral_table[] =
{
   { "steel" 		},
   { "iron"  		},
   { "copper" 		},
   { "adamantium" 	},
   { "platinum" 	},
   { "bronze" 		},
   { "silver" 		},
   { "marble" 		},
   { "brass" 		},
   { "granite" 		},
   { "electrum" 	},
   { NULL 		}
};

const struct const_type const_table[] =
{
	{   "MOB_VNUM_WARMASTER",			&MOB_VNUM_WARMASTER			},
	{   "MOB_VNUM_SKELETON",			&MOB_VNUM_SKELETON			},
	{   "MOB_VNUM_RENTER",				&MOB_VNUM_RENTER			},
	{   "MOB_VNUM_DEMON",				&MOB_VNUM_DEMON			},
	{   "MOB_VNUM_ANGEL",				&MOB_VNUM_ANGEL			},
	{   "MOB_VNUM_FBEAST",				&MOB_VNUM_FBEAST			},
	{   "MOB_VNUM_SYPHLOYD",				&MOB_VNUM_SYPHLOYD			},
	{   "MOB_VNUM_TYPHLOYD",				&MOB_VNUM_TYPHLOYD			},
	{   "MOB_VNUM_GOLEM",				&MOB_VNUM_GOLEM			},
	{   "MOB_VNUM_SHADOW",				&MOB_VNUM_SHADOW			},
	{   "MOB_VNUM_AURORA",				&MOB_VNUM_AURORA			},
	{   "OBJ_VNUM_SILVER_ONE",			&OBJ_VNUM_SILVER_ONE			},
	{   "OBJ_VNUM_GOLD_ONE",			&OBJ_VNUM_GOLD_ONE			},
	{   "OBJ_VNUM_GOLD_SOME",			&OBJ_VNUM_GOLD_SOME			},
	{   "OBJ_VNUM_SILVER_SOME",			&OBJ_VNUM_SILVER_SOME			},
	{   "OBJ_VNUM_COINS",				&OBJ_VNUM_COINS				},
	{   "OBJ_VNUM_CORPSE_NPC",			&OBJ_VNUM_CORPSE_NPC			},
	{   "OBJ_VNUM_CORPSE_PC",			&OBJ_VNUM_CORPSE_PC			},
	{   "OBJ_VNUM_SEVERED_HEAD",			&OBJ_VNUM_SEVERED_HEAD			},
	{   "OBJ_VNUM_TORN_HEART",			&OBJ_VNUM_TORN_HEART			},
	{   "OBJ_VNUM_SLICED_ARM",			&OBJ_VNUM_SLICED_ARM			},
	{   "OBJ_VNUM_SLICED_LEG",			&OBJ_VNUM_SLICED_LEG			},
	{   "OBJ_VNUM_GUTS",				&OBJ_VNUM_GUTS				},
	{   "OBJ_VNUM_BRAINS",				&OBJ_VNUM_BRAINS			},
	{   "OBJ_VNUM_SCHOOL_MACE",			&OBJ_VNUM_SCHOOL_MACE			},
	{   "OBJ_VNUM_SCHOOL_DAGGER",			&OBJ_VNUM_SCHOOL_DAGGER			},
	{   "OBJ_VNUM_SCHOOL_SWORD",			&OBJ_VNUM_SCHOOL_SWORD			},
	{   "OBJ_VNUM_SCHOOL_SPEAR",			&OBJ_VNUM_SCHOOL_SPEAR			},
	{   "OBJ_VNUM_SCHOOL_AXE",			&OBJ_VNUM_SCHOOL_AXE			},
	{   "OBJ_VNUM_SCHOOL_FLAIL",			&OBJ_VNUM_SCHOOL_FLAIL			},
	{   "OBJ_VNUM_SCHOOL_WHIP",			&OBJ_VNUM_SCHOOL_WHIP			},
	{   "OBJ_VNUM_SCHOOL_POLEARM",			&OBJ_VNUM_SCHOOL_POLEARM		},
	{   "OBJ_VNUM_SCHOOL_SHIELD",			&OBJ_VNUM_SCHOOL_SHIELD			},
        {   "OBJ_VNUM_SCHOOL_PANTS",                    &OBJ_VNUM_SCHOOL_PANTS			},
        {   "OBJ_VNUM_BEGINING",                        &OBJ_VNUM_BEGINING			},
        {   "OBJ_VNUM_SCHOOL_SATCHEL",                  &OBJ_VNUM_SCHOOL_SATCHEL		},
        {   "OBJ_VNUM_SCHOOL_SANDLES",                  &OBJ_VNUM_SCHOOL_SANDLES		},
        {   "OBJ_VNUM_SCHOOL_SHIRT",                    &OBJ_VNUM_SCHOOL_SHIRT			},
        {   "OBJ_VNUM_SCHOOL_WATER_SKIN",               &OBJ_VNUM_SCHOOL_WATER_SKIN		},
	{   "OBJ_VNUM_BOW",				&OBJ_VNUM_BOW				},
	{   "OBJ_VNUM_ORE",				&OBJ_VNUM_ORE				},
	{   "OBJ_VNUM_BREW",				&OBJ_VNUM_BREW				},
	{   "OBJ_VNUM_ARROW",				&OBJ_VNUM_ARROW				},
	{   "OBJ_VNUM_BLOOD_TRAIL",			&OBJ_VNUM_BLOOD_TRAIL			},
	{   "OBJ_UNIQUE_DUMMY",				&OBJ_UNIQUE_DUMMY			},
	{   "OBJ_VNUM_SKELETON",			&OBJ_VNUM_SKELETON			},
	{	"OBJ_VNUM_BATTLEWEAPON",		&OBJ_VNUM_BATTLEWEAPON		},
	{	"OBJ_VNUM_STAFF",				&OBJ_VNUM_STAFF				},
	{	"OBJ_VNUM_BLADE",				&OBJ_VNUM_BLADE				},
	{	"OBJ_VNUM_AXE",				&OBJ_VNUM_AXE				},
	{	"OBJ_VNUM_HILT",				&OBJ_VNUM_HILT				},
	{   "ROOM_VNUM_LIMBO",				&ROOM_VNUM_LIMBO			},
	{   "ROOM_VNUM_TEMPLE",				&ROOM_VNUM_TEMPLE			},
	{   "ROOM_VNUM_SCHOOL",				&ROOM_VNUM_SCHOOL			},
	{   "ROOM_VNUM_MORGUE",				&ROOM_VNUM_MORGUE			},
	{   "ROOM_VNUM_DONATION",			&ROOM_VNUM_DONATION			},
	{   "ROOM_VNUM_BANK",				&ROOM_VNUM_BANK				},
	{   "ROOM_VNUM_WAITROOM",			&ROOM_VNUM_WAITROOM			},
	{   "ROOM_VNUM_RENTBOX",			&ROOM_VNUM_RENTBOX			},
	{   "ROOM_VNUM_RENTER",				&ROOM_VNUM_RENTER			},
	{   "ROOM_VNUM_TIMEOUT",			&ROOM_VNUM_TIMEOUT			},
	{	"ROOM_GRAVE",					&ROOM_GRAVE					},
	{	"ROOM_HEAVEN",					&ROOM_HEAVEN				},
	{	"ROOM_VNUM_OCEAN",				&ROOM_VNUM_OCEAN			},
	{	NULL,							0							}
};

const struct gamble_item gamble_table[MAX_ITEM] =
{
  /* Vnum */
  { 20209 },
};
        
const struct flag_type suppress_flags[] =
{
  {      "flags",                SUPPRESS_FLAGS,         TRUE    },
  {      "flageffects",          SUPPRESS_FLAG_EFFECTS,  TRUE    },
  {      "dodge",                SUPPRESS_DODGE,         TRUE    },
  {      "burn",                 SUPPRESS_BURN,          TRUE    },
  {      "std",                  SUPPRESS_STD,           TRUE    },
  {      "shield",               SUPPRESS_SHIELD,        TRUE    },
  {      "shieldcomp",           SUPPRESS_SHIELD_COMP,   TRUE    },
  {      NULL,                   0,                      0       }
};         

const struct  house_item  house_table [] =
{
    /* Name */   /* Cost */  /* Vnum */    /* Type */
  {   "Couch",      200,        20706,      OBJ_VNUM    },
  {   "Healer",     500,        20701,      MOB_VNUM    },
  {   NULL,          0,         0,          0,          }
};

 
const struct weather_type weather_table[MAX_WEATHER] =
{
   { "There is a cold rain trickling down.",						},
   { "There is a warm rain trickling down.",						},
   { "Giant drops of rain are pouring from the sky.",					},
   { "Ring sized drops of rain are falling from the sky.",				},
   { "Soft warm rain is slowly coming down.",                   			},
   { "Hand sized drops of rain are falling from the sky.",      			},
   { "Boot sized drops of rain are falling from the sky.",      			},
   { "A clear azure sky blankets the land.",                    	        	},
   { "The pristine blue of the sky above spreads, unmarred by a cloud or a bird.", 	},
   { "An overcast sheet of clouds heavily blankets the sky.",   			},
   { "Wisps of clouds delicately curl and drift above.",		    		},
   { "Small pellets of ice fall from the sky and bounce as they hit the ground.",	},
   { "Balls of hail blanket the ground covering the landscape.",			},
   { "A large thunderstorm approaches you from a distance.",   				},
   { "A deep roar of thunder causes the very earth to tremble.",			},
   { "Flashes of light stab and illuminate the sky.",                   		},
   { "Waves of ice fall conintually from the sky.", 					},
   { "Shards of ice mercilessly batter the land.", 					},
   { "Soft flakes of snow drift from above, covering the land in a wash of white.",	},
   { "Large snowflakes swirl and drift, obscuring the nearby landscape.", 		},
   { "Large drifts of snow cover the ground blown out by driving winds.", 		},
   { "Blinding snow drives into the land, carried on howling gusts.",			},
   { "A misty haze covers the horizon.",						},
   { "Rolling fog claims the land clinging to the ground.",				},
   { "A bolt of lightning pierces the sky as a large storm approaches.", 		},
   { "Violent flashes of light rent the dark clouds.",					},
   { "A warm breeze flows through the land blanketing it with heat.",   		},
   { "A cold breeze flows through the land blanketing it with frost.",			},
   { "Gusts of wind sweep across the ground, pushing against any resistance.",		},
   { "Pressing winds push against the land, sighing mournfully with their passage.",	}, 
};   

const struct summoner_data summoner_table[] =
{ /* Name */        /* Cost */ /* Vnum */
  {"Ofcol",             50,     5500   },
  {"New Thalos",        75,     3900   },
  {"Miden'nir",         200,    3500   },
  {"Hell",              500,    10416  },
  {"Pyramid",           75,     8700   },
  {"Olympus",           100,    900    },
  {"Drow City",         200,    5269   },
  { NULL,0,0 } /* End of list - must always end with this! - Kharas */
};                           

const struct gpos_type gpos_table[] =
{
	{	"front",	POS_FRONT	},
	{	"middle",	POS_MIDDLE	},
	{	"back",		POS_BACK	},
	{	NULL,		0			}
};

const struct flag_type usetype_table[] =
{	{ "treeaxe",	UTYPE_AXE,		TRUE	},
	{ "tong",		UTYPE_TONG,		TRUE	},
	{ "pot",		UTYPE_POT,		TRUE	},
	{ "anvil",		UTYPE_ANVIL,	TRUE	},
	{ "hammer",		UTYPE_HAMMER,	TRUE	},
	{ "blade",		UTYPE_BLADE,	TRUE	},
	{ "ball",		UTYPE_BALL,		TRUE	},
	{ "hammerhead", UTYPE_HHEAD,	TRUE	},
	{ "hilt",		UTYPE_HILT,		TRUE	},
	{ "pole",		UTYPE_POLE,		TRUE	},
	{ "axehead",	UTYPE_AHEAD,	TRUE	},
    { "light",		UTYPE_LIGHT,	TRUE	},
    { "scroll",		UTYPE_SCROLL,	TRUE	},
    { "weapon",		UTYPE_WEAPON,	TRUE	},
    { "treasure",	UTYPE_TREASURE,	TRUE	},
    { "armor",		UTYPE_ARMOR,	TRUE	},
    { "potion",		UTYPE_POTION,	TRUE	},
    { "clothing",	UTYPE_CLOTHING,	TRUE	},
    { "furniture",	UTYPE_FURNITURE,TRUE	},
    { "trash",		UTYPE_TRASH,	TRUE	},
    { "container",	UTYPE_CONTAINER,TRUE	},
    { "drink",		UTYPE_DRINK_CON,TRUE	},
    { "key",		UTYPE_KEY,		TRUE	},
    { "food",		UTYPE_FOOD,		TRUE	},
    { "money",		UTYPE_MONEY,	TRUE	},
    { "boat",		UTYPE_BOAT,		TRUE	},
	{ "npc_corpse",	UTYPE_CORPSE_NPC,TRUE	},
    { "pc_corpse",	UTYPE_CORPSE_PC,TRUE	},
    { "fountain",	UTYPE_FOUNTAIN,	TRUE	},
    { "pill",		UTYPE_PILL,		TRUE	},
    { "protect",	UTYPE_PROTECT,	TRUE	},
    { "map",		UTYPE_MAP,		TRUE	},
    { "portal",		UTYPE_PORTAL,	TRUE	},
    { "warp_stone",	UTYPE_WARP_STONE,TRUE	},
    { "room_key",	UTYPE_ROOM_KEY,	TRUE	},
    { "gem",		UTYPE_GEM,		TRUE	},
    { "jewelry",	UTYPE_JEWELRY,	TRUE	},
    { "jukebox",	UTYPE_JUKEBOX,	TRUE	},
    { "token",		UTYPE_TOKEN,    TRUE    },
    { "source",		UTYPE_SOURCE,   TRUE    },
    { "instrument", UTYPE_INSTRUMENT,TRUE   },
    { "socket",		UTYPE_SOCKET,   TRUE    },
    { "quiver",		UTYPE_QUIVER,	TRUE	},
    { "arrow",		UTYPE_ARROW,    TRUE 	},
    { "sheath",		UTYPE_SHEATH,   TRUE 	},
    { "skeleton",   UTYPE_SKELETON, TRUE    },
    { "ore",		UTYPE_ORE,		TRUE	},
	{ "lumber",		UTYPE_LUMBER, 	TRUE	},
	{ "hearth",		UTYPE_HEARTH,   TRUE	},
	{ "furnace",	UTYPE_FURNACE,  TRUE	},
	{ "belt",		UTYPE_BELT,		TRUE	},
	{ "crystal",	UTYPE_CRYSTAL,	TRUE	},
	{ NULL,			0,				0		}
};

const struct fuel_type fuel_table[] =
{	{	"none",		0,		0	},
	{	"coal",		800,	5	},
	{	"wood",		600,	2	},
	{	NULL,		0,		0	}
};


const struct forge_type forge_table[] =
{	
	//Blades
	{	"short duel-edged blade",		"duel-edged blade",		UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{   	"short inside-edged blade",		"inside-edged blade",	UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{	"short outside-edged blade",		"outside-edged blade",  UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{	"short single-edged blade",		"single-edged blade",   UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{	"medium duel-edged blade",		"duel-edged blade",		UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{   	"medium inside-edged blade",		"inside-edged blade",	UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{	"medium outside-edged blade",		"outside-edged blade",  UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{	"medium single-edged blade",		"single-edged blade",   UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{	"long duel-edged blade",		"duel-edged blade",		UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{   	"long inside-edged blade",		"inside-edged blade",	UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{	"long outside-edged blade",		"outside-edged blade",  UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{	"long single-edged blade",		"single-edged blade",   UTYPE_BLADE,	1,	BUILD_BLADE,	&OBJ_VNUM_BLADE		},
	{	"hilt",							"",						UTYPE_HILT,		1,	BUILD_HILT,		&OBJ_VNUM_HILT		},
	//Axes
	{	"short duel-edged axe",			"duel edged axe",	UTYPE_AXE,	1,	BUILD_AXE,	&OBJ_VNUM_AXE		},
	{	NULL,							NULL,					0,				0,	0,				0					}
};

const struct blength_type blength_table[] =
{	{	"short",		"dagger"	},
	{	"medium",		"short sword"	},
	{	"long",			"long sword"	},
	{	NULL,			NULL		},
};
const struct flag_type bstyle_table[] =
{	{	"straight",		0,		1		},
	{	"curved",		0,		1		},
	{	NULL,			0,		0		},
};

const struct flag_type astyle_table[] =
{
	{	"straight",		0,		TRUE		},
	{	"concave",		0,		TRUE		},
	{	"convex",		0,		TRUE		},
	{	NULL,			0,		FALSE		},
};

const struct flag_type staffpos_table[] =
{	{	"Implimentor",	POS_IMP,	TRUE	},
	{	"Builder",		POS_BUILD,	TRUE	},
	{	"Quester",		POS_QUEST,	TRUE	},
	{	"Enforcer",		POS_ENFORCE, TRUE	},
	{	"HeadBuilder",	POS_HBUILD,	TRUE	},
	{	"Immortal",		POS_IMM,	TRUE	},
};

const char *crystal_table[] =
{	"Jet",
	"Carnelian",
	"Bloodstone",
	"Aquamarine",
	"Amethyst",
	"Quartz",
	NULL
};

const struct integral_type integral_table[] =
{	{	"hilt",		UTYPE_BLADE,	UTYPE_WEAPON,	EVENT_INT_HILT		},
	{	NULL,		0,				0				}
};