lance/data/socials/
/***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
 *                                                                         *
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
 *  Chastain, Michael Quan, and Mitchell Tse.                              *
 *                                                                         *
 *  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"

/* for clans  */
const struct clan_type clan_table[MAX_CLAN] =
{
    /*  name,		who entry,
    	death-transfer room,	recall room,	independent	subclan*/
    
    /* independent should be FALSE if is a real clan */
    /* subclan should be TRUE for clan with subclans */
    {	"",		"",
    	11500,			0,		TRUE,	FALSE	},

    {	"solamnic",	"[{C Solamnic {x] ",
    	14072,			14072,		FALSE,	TRUE	},
    {	"kot",		"[{D   KoT    {x] ",
    	100,			100,		FALSE,	TRUE	},
    {	"conclave",	"[{W Conclave {x] ",
    	11701,			11701,		FALSE,	TRUE	},
    {	"holyorder",	"[{GHoly Order{x] ",
    	5600,			5600,		FALSE,	TRUE	},
    {	"wildrunner",	"[{GWildrunner{x] ",
    	14851,			14851,		FALSE,	FALSE	},
    {	"mercenary",	"[{BMercenary {x] ",
    	16053,			16053,		FALSE,	FALSE	},
    {	"thehorde",	"[ {DTheHorde{x ] ",
    	6000,			6000,		FALSE,	FALSE	},
    {	"loner",	"[{Y  Loner   {x] ",
    	11500,			0,		TRUE,	FALSE	},
    {	"renegade",	"[{m Renegade {x] ",
    	11500,			0,		TRUE,	FALSE	},
    {	"heathen",	"[{g Heathen  {x] ",
    	11500,			0,		TRUE,	FALSE	},
    {	"finder",	"[{R  Finder  {x] ",
    	18202,			18202,		FALSE,	FALSE	},
    {	"rfos",	"[{r   RFoS   {x] ",
    	20086,			20050,		FALSE,	FALSE	},
    {	"undead",	"[{r  Undead  {x] ",
    	903,			903,		FALSE,	FALSE	},
    {	"teyr",	    	"[{R   Teyr   {x] ",
    	1,			1,		FALSE,	FALSE	},
    {	"thieves",	"[{y Thieves  {x] ",
    	13856,			13856,		FALSE, 	FALSE	}

};

const struct subclan_type subclan_table[MAX_SUBC] = 
{
    {   "",             "",                     0       },
    {	"crown",	"[{Y Crown {x] ",	1	},
    {	"sword",	"[{W Sword {x] ",	1	},
    {	"rose",		"[{r Rose  {x] ",	1	},
    {	"reserve",	"[{yReserve{x] ",	1	},

    {	"lily",		"[{B Lily  {x] ",	2	},
    {	"skull",	"[{W Skull {x] ",	2	},
    {	"thorn",	"[{r Thorn {x] ",	2	},
    {   "storm",        "[{c Storm {x] ",       2     },

    {	"white",	"[{W White {x] ",	3	},
    {	"red",		"[{r  Red  {x] ",	3	},
    {	"black",	"[{D Black {x] ",	3	},
    
    {	"light",	"[{W Light {x] ",	4	},
    {	"balance",	"[{rBalance{x] ",	4	},
    {	"dark",		"[{D Dark  {x] ",	4	}
   
};
const struct ctalk_type ctalk_table[MAX_CLAN] = 
{
    {	"",		""			},
    {	"solamnic",	"a solamnic squire"	},
    {	"kot",		"a squire of Takhisis"	},
    {	"conclave",	"a conclave apprentice"	},
    {	"holy order",	"an adept"		},
    {	"wildrunner",	"a green-clad runner"	},
    {	"mercenary",	"an errand-boy"		},
    {	"thehorde",	"a skulking goblin"	},

    {	"loner",	""			},
    {	"renegade",	""			},
    {	"heathen",	""			},
    {	"finder",	"a small kender"	},
    {	"rfos",	"a minotaur"		},
    {	"undead",       "a rotten dove"        	},
    {	"teyr",		"a baaz servant"	},
    {	"thieves",	"a pick-pocket"		}

};

const struct rank_type handler_table[]=
{
    {	""			},
    {	"Jr. Borrower"		},
    {	"Borrower"		},
    {	"Wanderer"		},
    {	"Pouch Keeper"		},
    {	"Taunter"		},
    {	"Handler"		},
    {	"Explorer"		},
    {	"Mapmaker"		},
    {	"Master of Pouches"	},
    {	"Uncle"			},
    {	"Master Handler"	}
};

const struct rank_type queshu_table[] =
{
    {	""			},
    {	"Warrior of Darkness"		},
    {	"Gladiator"			},
    {	"Fist of Darkness"		},
    {	"Mariner"		},
    {	"Avenger of the Blood Sea"		},
    {	"Captain"		},
    {	"Commander"		},
    {	"Champion of the Circus"			},
    {	"Advisor"		},
    {	"Champion of the Blood Sea"		},
    {	"Wrathful"	}
};

const struct rank_type sol_crown_table[] =
{
    {	""			},
    {	"Page of the Crown"	},
    {	"Squire of the Crown"	},
    {	"Knight of the Crown"	},
    {	"Shield Knight"		},
    {	"Shield of the Crown"	},
    {	"Warrior of the Crown"	},
    {	"Lord of Shield"	},
    {	"Lord of Crown"		},
    {	"Master Warrior"	},
    {	"High Warrior"		},
    {   "Lord Warrior"		}
};

const struct rank_type sol_sword_table[] =
{
    {	""			},
    {	"Page to the Sword"	},
    {	"Squire of the Sword"	},
    {	"Knight of the Sword"	},
    {	"Captain of the Sword"	},
    {	"Sword Warrior"		},
    {	"Vetran of the Sword"	},
    {	"Master of the Sword"	},
    {	"Lord of the Sword"	},
    {	"Master Clerist"	},
    {	"High Clerist"		}
};   

const struct rank_type sol_rose_table[] =
{
    {	""			}, 
    {	"Novice of Roses"	}, 
    {	"Knight of Tears"	}, 
    {	"Knight of Mind"	}, 
    {	"Knight of Heart"	}, 
    {	"Knight of Roses"	}, 
    {	"Master of Roses"	}, 
    {	"Archknight"		}, 
    {	"Lord of Roses"		}, 
    {	"Master of Justice"	}, 
    {	"High Justice"  	}
};
      
const struct rank_type solamnic_table[] =
{
    {   ""			},
    {   "Squire of the Crown"	},
    {	"Knight of the Crown"	},
    {	"Novice of the Sword"	},
    {	"Knight of the Sword"	},
    {	"Knight of the Rose"	},
    {	"Archknight"		},
    {	"High Warrior"		},
    {	"High Clerist"		},
    {	"High Justice"		},
    {	"Grand Master"		},
    {	"Grand Master"		}
};


const struct rank_type kot_lily_table[] =
{
    {   ""			},
    {   "Night Acolyte"		},
    {	"Night Warrior"		},
    {	"Dark Wanderer"		},
    {	"Dark Warrior"		},
    {	"Warrior of the Lily"	},
    {	"Master of the Lily"	},
    {	"Champion of the Lily"	},
    {	"Captain of the Lily"	},
    {	"Protector of the Lily"	},
    {	"Lord of the {bLily{x"	},
    {	"Lord of the {bLily{x"	}
};


const struct rank_type kot_skull_table[] =
{
    {   ""			},
    {   "Bone Warrior"		},
    {	"Dark Cleric"		},
    {	"Skull Bishop"		},
    {	"Skull Priest"		},
    {	"Skull Knight"		},
    {	"Master of the Skull"	},
    {	"Skull Champion"	},
    {	"Keeper of the Bones"	},
    {	"High Priest"		},
    {	"Lord of the {WSkull{x"	},
    {	"Lord of the {WSkull{x"	}
};


const struct rank_type kot_thorn_table[] =
{
    {   ""			},
    {   "Blood Acolyte"		},
    {	"Thorn Apprentice"	},
    {	"Thorn Sorcerer"	},
    {	"Thorn Wizard"		},
    {	"Thorn Seer"		},
    {	"Thorn Master"		},
    {	"Nightlord"		},
    {	"Master of the Thorn"	},
    {	"Archmage of the Thorn"	},
    {	"Lord of the {rThorn{x"	},
    {	"Lord of the {rThorn{x"	}
};

const struct rank_type kot_storm_table[] =
{
    {   ""                           },
    {   "{DDread Rider{x"            },
    {   "{DDread Knight{x"           },
    {   "{DDoom Knight{x"            },
    {   "{DStorm Knight{x"           },
    {   "{DStorm Champion{x"         },
    {   "{DStorm Forger{x"           },
    {   "{DTamer of the Storm{x"     },
    {   "{DKeeper of the Night{x"    },
    {   "{DCommander of the Night{x" },
    {   "{DHarbinger of Vengeance{x" },
    {   "{DBlah{x"                   }
};

const struct rank_type ho_light_table[] =
{
    {   ""				},
    {   "Initiate"			},
    {	"Neophyte"			},
    {	"Novitiate"			},
    {	"Acolyte"			},
    {	"Believer of the Faith"		},
    {	"Master of the Faith"		},
    {	"Upholder of the Faith"		},
    {	"Protector of the Faith"	},
    {	"Crusader of the Faith"		},
    {	"High Master Healer"		},
    {	"High Master"		}
};

const struct rank_type ho_balance_table[] =
{
    {   ""				},
    {   "Initiate"			},
    {	"Neophyte"			},
    {	"Novitiate"			},
    {	"Acolyte"			},
    {	"Believer of the Faith"		},
    {	"Master of the Faith"		},
    {	"Upholder of the Faith"		},
    {	"Protector of the Faith"	},
    {	"Crusader of the Faith"		},
    {	"High Master Healer"		},
    {	"High Master"		}
};

const struct rank_type ho_dark_table[] =
{
    {   ""				},
    {   "Initiate"			},
    {	"Neophyte"			},
    {	"Novitiate"			},
    {	"Acolyte"			},
    {	"Believer of the Faith"		},
    {	"Master of the Faith"		},
    {	"Upholder of the Faith"		},
    {	"Protector of the Faith"	},
    {	"Crusader of the Faith"		},
    {	"High Master Healer"		},
    {	"High Master"		}
};


const struct rank_type conclave_table[] =
{
    {   ""		},
    {   "Initiate"	},
    {	"Apprentice"    },
    {	"Adept"  	},
    {	"Magus"		},
    {	"Master"	},
    {	"Spellmaster"	},
    {	"Taskmage"	},
    {	"Highmaster"	},
    {	"Archmage"	},
    {	"High Archmage"	},
    {	"High ArchMoon" }
};
    
const struct rank_type wildrunner_table[] =
{
    {   ""			},
    {   "Runner"		},
    {	"Private" 		},
    {	"Scout"			},
    {	"Ranger"		},
    {	"Seargant"		},
    {	"Major"   	    	},
    {	"Lieuteant"         	},
    {	"Captin"  		},
    {	"Commander"		},
    {	"General"		},
    {	"Holy Leader"		}
};

const struct rank_type mercenary_table[] =
{
    {   ""			},
    {   "Merchant"	        },
    {	"Thug"		        },
    {	"Hit-Man"		},
    {	"Sell Sword"		},
    {	"Bodyguard"		},
    {	"Executioner"		},
    {	"Bounty Hunter"		},
    {	"Assassin"	        },
    {	"Enforcer"	        },
    {	"Blademaster"	        },
    {	"Money Bags"	        }
};

const struct rank_type mithril_table[] =
{
    {   ""		        	},
    {   "Peon"		        	},
    {   "Bully"				},
    {	"Jerk" 				},
    {	"Liar"				},
    {	"Cutthroat"			},
    {	"Cheater"			},
    {	"Pillager"			},
    {	"Raider"			},
    {	"Defiler"			},
    {	"Overlord"			},
    {	"The boss?"        	        }
};

const struct rank_type undead_table[] =
{
    {   ""			},
    {   "Slave"			},
    {	"Servant"		},
    {	"Master"		},
    {	"Minion"		},
    {	"Lord"   		},
    {	"Ravager"		},
    {	"Baron" 		},
    {	"Soul Taker"		},
    {	"Death Lord"		},
    {	"Avatar"		},
    {   "God of Death"          }
};

const struct rank_type teyr_table[] =
{
    {   ""			},
    {   "Citizen"		},
    {	"Merchant"		},
    {	"Guard"			},
    {	"Soldier"		},
    {	"Commander"		},
    {	"Group Leader"		},
    {	"Council Member"	},
    {	"Clan General"		},
    {	"Supreme General"	},
    {	"Governor"		},
    {	"Governer"		}
};

const struct rank_type thieves_table[] =
{
    {   ""                      },               
    {   "Street Urchin"     },
    {   "Rogue"                 },
    {   "Cutpurse"              },
    {   "Burglar"               },
    {   "Bandit"                },
    {   "Cutthroat"             },
    {   "Shadow Walker"         },
    {   "Master Thief"      },
    {   "Kingpin"            },
    {   "Prince of Thieves"     },
    {   "King Liar"             }
};

/* 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"	},
    {	"riding",		"ride"	},
    {	NULL,			NULL	}
};

/* for sex */
const struct sex_type sex_table[] =
{
   {	"none"		},
   {	"male"		},	
   {	"female"	},
   {	"either"	},
   {	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[] =
{
    {	"npc",			A,	FALSE	},
    {	"sentinel",		B,	TRUE	},
    {	"scavenger",		C,	TRUE	},
    {	"aggressive",		F,	TRUE	},
    {	"stay_area",		G,	TRUE	},
    {	"wimpy",		H,	TRUE	},
    {	"pet",			I,	TRUE	},
    {	"train",		J,	TRUE	},
    {	"practice",		K,	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	},
    {	"mountable",		ee,	TRUE	},
    {	NULL,			0,	FALSE	}
};

const struct flag_type act2_flags[] =
{
    {	"banker",		A,	TRUE	},
    {	"gambler",		B,	TRUE	},
    {	"no_attack",		C,	TRUE	},
    {	"no_counter",		D,	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	},
    {	"mounted",		J,	TRUE	},
    {	"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	},
    {	NULL,			0,	0	}
};

const struct flag_type affect_flags[] =
{
    {	"blind",		A,	TRUE	},
    {	"invisible",		B,	TRUE	},
    {	"detect_evil",		C,	TRUE	},
    {	"detect_invis",		D,	TRUE	},
    {	"detect_magic",		E,	TRUE	},
    {	"detect_hidden",	F,	TRUE	},
    {	"detect_good",		G,	TRUE	},
    {	"sanctuary",		H,	TRUE	},
    {	"faerie_fire",		I,	TRUE	},
    {	"infrared",		J,	TRUE	},
    {	"curse",		K,	TRUE	},
    {	"poison",		M,	TRUE	},
    {	"protect_evil",		N,	TRUE	},
    {	"protect_good",		O,	TRUE	},
    {	"sneak",		P,	TRUE	},
    {	"hide",			Q,	TRUE	},
    {	"sleep",		R,	TRUE	},
    {	"charm",		S,	TRUE	},
    {	"flying",		T,	TRUE	},
    {	"pass_door",		U,	TRUE	},
    {	"haste",		V,	TRUE	},
    {	"calm",			W,	TRUE	},
    {	"plague",		X,	TRUE	},
    {	"weaken",		Y,	TRUE	},
    {	"dark_vision",		Z,	TRUE	},
    {	"berserk",		aa,	TRUE	},
    {	"swim",			bb,	TRUE	},
    {	"regeneration",		cc,	TRUE	},
    {	"slow",			dd,	TRUE	},
    {	"true_sight",		ee,	TRUE	},
    {	NULL,			0,	0	}
};

const struct flag_type affect2_flags[] =
{
    {	"enhanced_mind",	A,	TRUE	},
    {	"advanced_mind",	B,	TRUE	},
    {	"flameshield",		C,	TRUE	},
    {	"silence",			D,	TRUE	},
    {	"hallucinating",	E,	TRUE	},
    {	"blur",				F,	TRUE	},
    {   "lightningshield",	G,	TRUE	},
    {   "layhands",		H,	TRUE	},
    {   "flaming_eyes",		I,	TRUE	},
    {	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 imm_flags[] =
{
    {	"summon",		A,	TRUE	},
    {	"charm",		B,	TRUE	},
    {	"magic",		C,	TRUE	},
    {	"weapon",		D,	TRUE	},
    {	"bash",			E,	TRUE	},
    {	"pierce",		F,	TRUE	},
    {	"slash",		G,	TRUE	},
    {	"fire",			H,	TRUE	},
    {	"cold",			I,	TRUE	},
    {	"lightning",		J,	TRUE	},
    {	"acid",			K,	TRUE	},
    {	"poison",		L,	TRUE	},
    {	"negative",		M,	TRUE	},
    {	"holy",			N,	TRUE	},
    {	"energy",		O,	TRUE	},
    {	"mental",		P,	TRUE	},
    {	"disease",		Q,	TRUE	},
    {	"drowning",		R,	TRUE	},
    {	"light",		S,	TRUE	},
    {	"sound",		T,	TRUE	},
    {	"wood",			X,	TRUE	},
    {	"silver",		Y,	TRUE	},
    {	"iron",			Z,	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 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	},
    {   "noic",			COMM_NOIC,		TRUE	},
    {   "nomusic",		COMM_NOMUSIC,		TRUE	},
    {   "noclan",		COMM_NOCLAN,		TRUE	},
    {   "noosay",		COMM_NOOSAY,		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	},
    {   "noosay",		COMM_NOOSAY,		FALSE	},
    {   "notell",		COMM_NOTELL,		FALSE	},
    {   "nochannels",		COMM_NOCHANNELS,	FALSE	},
    {   "nopray",               COMM_NOPRAY,            TRUE    },
    {   "snoop_proof",		COMM_SNOOP_PROOF,	FALSE	},
    {   "afk",			COMM_AFK,		TRUE	},
    {   "iaw",			COMM_IAW,		TRUE	},
    {	NULL,			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	},
    {	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	},
    {	"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	},
    {	"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	},
    {	"no_recall",		ROOM_NO_RECALL,		TRUE	},
    {	"no_trans",		ROOM_NO_TRANS,		TRUE	},
    {	"no_summon",		ROOM_NO_SUMMON,		TRUE	},
    {	"no_gate",		ROOM_NO_GATE,		TRUE	},
    {	"no_scrye",		ROOM_NO_SCRYE,		TRUE	},
    {	"nomagic",		ROOM_NOMAGIC,		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	},
    {   "underground",  SECT_UNDERGROUND,       TRUE    },   
    {	"arena",	SECT_PKARENA,		TRUE	},
    {	NULL,		0,			0	}
};



const struct flag_type type_flags[] =
{
    {	"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	},
    {	"npccorpse",		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	},
    {	"roomkey",		ITEM_ROOM_KEY,		TRUE	},
    { 	"gem",			ITEM_GEM,		TRUE	},
    {	"jewelry",		ITEM_JEWELRY,		TRUE	},
    {	"jukebox",		ITEM_JUKEBOX,		TRUE	},
    {	"parchment",		ITEM_PARCHMENT,		TRUE	},
    {	"pen",			ITEM_PEN,		TRUE	},
    {	"spell",		ITEM_SPELL,		TRUE	},
    {	"all",			ITEM_SHOP_ALL,		FALSE	},
    {	NULL,			0,			0	}
};


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	},
    {	"nouncurse",		ITEM_NOUNCURSE,		TRUE	},
    {	"noiden",		ITEM_NOIDEN,		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	},
    {	"wearfloat",		ITEM_WEAR_FLOAT,	TRUE	},
    {	"ankle",		ITEM_WEAR_ANKLE,	TRUE	},
    {	"ear",			ITEM_WEAR_EAR,		TRUE	},
    {   "back",                 ITEM_WEAR_BACK,         TRUE    },
    {   "tattoo",               ITEM_WEAR_TATTOO,       TRUE    },
    {   "face",                 ITEM_WEAR_FACE,         TRUE    },
/*    {   "twohands",            ITEM_TWO_HANDS,         TRUE    }, */
    {	NULL,			0,			0	}
};

const struct flag_type class_flags[] = 
{
    {	"mage",			ITEM_MAGE_ONLY,		TRUE	},
    {	"cleric",		ITEM_CLERIC_ONLY,	TRUE	},
    {	"thief",		ITEM_THIEF_ONLY,	TRUE	},
    {	"warrior",		ITEM_WARRIOR_ONLY,	TRUE	},
    {	"paladin",		ITEM_PALADIN_ONLY,	TRUE	},
    {	"ranger",		ITEM_RANGER_ONLY,	TRUE	},
    {	"templar",		ITEM_TEMPLAR_ONLY,	TRUE	},
    {	"bmage",		ITEM_BMAGE_ONLY,	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	},
    {	"steel",		APPLY_STEEL,		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	}
};



/*
 * What is seen.
 */
const struct flag_type wear_loc_strings[] =
{
    {	"in the inventory",	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	},
    {	"in the right hand",	WEAR_RIGHT,	TRUE	},
    {	"in the left hand",	WEAR_LEFT,	TRUE	},
    {	"floating nearby",	WEAR_FLOAT,	TRUE	},
    {	"on the ankle",		WEAR_ANKLE,	TRUE	},
    {	"on the ear",		WEAR_EAR,	TRUE	},
    {   "on the back",          WEAR_BACK,      TRUE    },
    {   "on the left arm",      WEAR_TATTOO_L,  TRUE    },
    {   "on the right arm",     WEAR_TATTOO_R,  TRUE    },
    {   "on the face",          WEAR_FACE,      TRUE    },
    {	NULL,			0	      , 0	}
};


const struct flag_type 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	},
    {	"rhand",	WEAR_RIGHT,	TRUE	},
    {	"lhand",	WEAR_LEFT,	TRUE	},
    {	"floating",	WEAR_FLOAT,	TRUE	},
    {   "ankle",	WEAR_ANKLE,	TRUE	},
    {   "ear",		WEAR_EAR,	TRUE	},
    {   "back",         WEAR_BACK,      TRUE    },
    {   "ltattoo",      WEAR_TATTOO_L,  TRUE    },
    {   "rtattoo",      WEAR_TATTOO_R,  TRUE    },
    {   "face",         WEAR_FACE,      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    },
    {	"lance",	WEAPON_LANCE,		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	},
    {   "acidic", 	 WEAPON_ACIDIC,		TRUE	},
    {   NULL,              0,                    0       }
};

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


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

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	},
	{	"affect2",	TO_AFFECTS2,	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"	},
	{	affect2_flags,  "affect2"	},
	{	apply_flags,	"apply"		},
	{	imm_flags,	"imm"		},
	{	res_flags,	"res"		},
	{	vuln_flags,	"vuln"		},
	{	weapon_type2,	"weapon"	}
};