/**************************************************************************
* 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_IsNPC, 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}
,
{"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}
,
{"thief", PLR_THIEF, false}
,
{"killer", PLR_KILLER, 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}
,
{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", AREA_NONE, false}
,
{"changed", AREA_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[] = {
{"default", 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 color_type color_table[MAX_CUSTOM_COLOR] = {
{"Clear", _DEFAULT, {CL_NONE, FG_NONE, BG_NONE}
},
{"Gossip", _GOSSIP, {CL_BRIGHT, FG_MAGENTA, BG_NONE}},
{"Music", _MUSIC, {CL_BRIGHT, FG_RED, BG_NONE}},
{"Q/A", _QA, {CL_NONE, FG_YELLOW, BG_NONE}},
{"Quote", _QUOTE, {CL_BRIGHT, FG_WHITE, BG_NONE}},
{"Gratz", _GRATS, {CL_NONE, FG_GREEN, BG_NONE}},
{"Shout1", _SHOUT1, {CL_NONE, FG_WHITE, BG_NONE}},
{"Shout2", _SHOUT2, {CL_NONE, FG_MAGENTA, BG_NONE}},
{"ImmTalk", _IMMTALK, {CL_NONE, FG_CYAN, BG_NONE}},
{"Tells1", _TELLS1, {CL_NONE, FG_CYAN, BG_NONE}},
{"Tells2", _TELLS2, {CL_BRIGHT, FG_CYAN, BG_NONE}},
{"Say1", _SAY1, {CL_NONE, FG_GREEN, BG_NONE}},
{"Say2", _SAY2, {CL_BRIGHT, FG_GREEN, BG_NONE}},
{"Skill", _SKILL, {CL_BRIGHT, FG_YELLOW, BG_NONE}},
{"YHit", _YHIT, {CL_NONE, FG_GREEN, BG_NONE}},
{"OHit", _OHIT, {CL_NONE, FG_BLUE, BG_NONE}},
{"VHit", _VHIT, {CL_NONE, FG_RED, BG_NONE}},
{"WhoRace", _WRACE, {CL_BRIGHT, FG_RED, BG_NONE}},
{"WhoClass", _WCLASS, {CL_BRIGHT, FG_CYAN, BG_NONE}},
{"WhoLevel", _WLEVEL, {CL_BRIGHT, FG_BLUE, BG_NONE}},
{"RoomTitle", _RTITLE, {CL_BRIGHT, FG_GREEN, BG_NONE}},
{"Score1", _SCORE1, {CL_NONE, FG_CYAN, BG_NONE}},
{"Score2", _SCORE2, {CL_BRIGHT, FG_CYAN, BG_NONE}},
{"Score3", _SCORE3, {CL_BRIGHT, FG_WHITE, BG_NONE}},
{"Score4", _SCOREB, {CL_NONE, FG_NONE, BG_NONE}},
{"Wiznet", _WIZNET, {CL_NONE, FG_GREEN, BG_NONE}},
{"Gtell1", _GTELL1, {CL_BRIGHT, FG_BLUE, BG_NONE}},
{"Gtell2", _GTELL2, {CL_BRIGHT, FG_MAGENTA, BG_NONE}},
{"Btalk", _BTALK, {CL_BRIGHT, FG_BLUE, BG_NONE}},
{"WhoSex", _WSEX, {CL_NONE, FG_GREEN, BG_NONE}}
};
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", CLAN_CHANGED, true},
{"deleted", CLAN_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},
{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
#if defined(NO_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", CMD_NONE, true},
{"deleted", CMD_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}
};