/***************************************************************************
* 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 "magic.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 socket_flags[] =
{
{ "sapphire", SOC_SAPPHIRE, TRUE },
{ "ruby", SOC_RUBY, TRUE },
{ "emerald", SOC_EMERALD, TRUE },
{ "diamond", SOC_DIAMOND, TRUE },
{ "topaz", SOC_TOPAZ, TRUE },
{ "skull", SOC_SKULL, TRUE },
{ NULL, 0, 0 },
};
const struct flag_type socket_values[] =
{
{ "chipped", GEM_CHIPPED, TRUE },
{ "flawed", GEM_FLAWED, TRUE },
{ "flawless", GEM_FLAWLESS, TRUE },
{ "perfect", GEM_PERFECT, TRUE },
{ NULL, 0, 0 },
};
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 },
{ "consent", V, FALSE },
{ "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 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 },
{ NULL, 0, 0 }
};
const struct flag_type affect2_flags[] =
{
{ "steel_skin", A, TRUE },
{ "turning", B, TRUE },
{ "bloodlust", C, TRUE },
{ "divine_protection", D, TRUE },
{ "force_shield", E, TRUE },
{ "static_shield", F, TRUE },
{ "flame_shield", G, TRUE },
{ "lifeforce", H, 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 },
{ "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 },
{ "noinfo", COMM_NOINFO, 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 },
{ "noquest", COMM_NOQUEST, TRUE },
{ NULL, 0, 0 }
};
const struct hometown_type hometown_table [] =
{
/* { "name", recall, school, morgue, death, donation, postal }, */
{ "Midgaard", 3001, 3700, 3000, 3054, 3037, 3037 },
{ "Bridgewater", 5600, 3700, 5619, 5752, 5737, 5738 },
{ 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 },
{ 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 },
{ 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 },
{ "token", ITEM_TOKEN, TRUE },
{ "source", ITEM_SOURCE, TRUE },
{ "socket", ITEM_SOCKET, TRUE },
{ "instrument", ITEM_INSTRUMENT, TRUE },
{ "quiver", ITEM_QUIVER, TRUE },
{ "arrow", ITEM_ARROW, TRUE },
{ "sheath", ITEM_SHEATH, TRUE },
{ "belt", ITEM_BELT, TRUE },
{ "skeleton", ITEM_SKELETON, TRUE },
{ "ore", ITEM_ORE, TRUE },
{ "sockets", ITEM_SOCKETS, TRUE },
{ 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 },
{ "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 },
{ "inlay1", ITEM_INLAY1, TRUE },
{ "inlay2", ITEM_INLAY2, 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 },
{ "wedding", ITEM_WEAR_WEDDING, 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", ITEM_QUIVER, TRUE },
{ "arrow", ITEM_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 },
{ "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 },
{ "on your shoulder", WEAR_SHOULDER, TRUE },
{ "worn as hood", WEAR_HOOD, TRUE },
{ "worn as cloak", WEAR_CLOAK, TRUE },
{ "worn around arms", WEAR_LAYER_ARMS,TRUE },
{ "worn around body", WEAR_LAYER_BODY,TRUE },
{ "worn around legs", WEAR_LAYER_LEGS,TRUE },
{ "worn on back", WEAR_BACK, 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 },
{ 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[] =
{
{ "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 },
{ "steel", VULN_STEEL, TRUE },
{ "mithril", VULN_MITHRIL, TRUE },
{ "adamantite", VULN_ADAMANTITE, 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" },
{ affect2_flags, "affect2" },
{ apply_flags, "apply" },
{ imm_flags, "imm" },
{ res_flags, "res" },
{ vuln_flags, "vuln" },
{ 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 },
{ 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 material_type material_table [] =
{
/* { material name ,material_type, vuln_flag } */
{ "steel", MAT_STEEL, VULN_STEEL },
{ "stone", MAT_STONE, 0 },
{ "brass", MAT_BRASS, 0 },
{ "bone", MAT_BONE, 0 },
{ "energy", MAT_ENERGY, VULN_ENERGY },
{ "mithril", MAT_MITHRIL, VULN_MITHRIL },
{ "copper", MAT_COPPER, 0 },
{ "silk", MAT_SILK, 0 },
{ "marble", MAT_MARBLE, 0 },
{ "glass", MAT_GLASS, 0 },
{ "water", MAT_WATER, 0 },
{ "flesh", MAT_FLESH, 0 },
{ "platinum", MAT_PLATINUM, 0 },
{ "granite", MAT_GRANITE, 0 },
{ "leather", MAT_LEATHER, 0 },
{ "cloth", MAT_CLOTH, 0 },
{ "gemstone", MAT_GEMSTONE, 0 },
{ "gold", MAT_GOLD, 0 },
{ "porcelain", MAT_PORCELAIN, 0 },
{ "obsidian", MAT_OBSIDIAN, 0 },
{ "dragonscal", MAT_DRAGONSCALE, 0 },
{ "ebony", MAT_EBONY, 0 },
{ "bronze", MAT_BRONZE, 0 },
{ "wood", MAT_WOOD, VULN_WOOD },
{ "silver", MAT_SILVER, VULN_SILVER },
{ "iron", MAT_IRON, VULN_IRON },
{ "bloodstone", MAT_BLOODSTONE, 0 },
{ "food", MAT_FOOD, 0 },
{ "lead", MAT_LEAD, 0 },
{ "wax", MAT_WAX, 0 },
{ "diamond", MAT_DIAMOND, 0 },
{ "crystal", MAT_CRYSTAL, 0 },
{ "vellum", MAT_VELLUM, 0 },
{ "paper", MAT_PAPER, 0 },
{ "meat", MAT_MEAT, 0 },
{ "adamantite", MAT_ADAMANTITE, VULN_ADAMANTITE },
{ "pill", MAT_PILL, 0 },
{ "liquid", MAT_LIQUID, 0 },
{ "unique", MAT_UNIQUE, 0 },
{ "unknown", 0, 0 }
};
const struct chan_type chan_table[] =
{
{ "{w[{WOOC{w]", "W", "W", COMM_NOOOC},
{ "{D[{yGossip{D]", "D", "C", COMM_NOGOSSIP},
{ "{w[Quote]", "w", "w", COMM_NOQUOTE},
{ "{C[{cMusic{C]", "c", "C", COMM_NOMUSIC},
{ "{g[{GQA{g]", "g", "g", COMM_NOQUESTION},
{ "{r[{RAuction{r]", "R", "R", COMM_NOAUCTION},
{ "{M[{mGrats{M]", "M", "m", COMM_NOGRATS},
{ "{W[{DImmChat{W]", "W", "W", COMM_NOWIZ},
{ "{y[{YClan{y]", "y", "y", COMM_NOCLAN},
{ "{B[{yIMP{B]", "B", "c", COMM_NOIMP},
{ "{B[{GHERO{B]", "B", "c", COMM_NOHERO},
{ "{B[{RNewbie{B]", "B", "c", COMM_NONEWBIE},
{ "{r[{DADMIN{r]", "w", "D", COMM_NOADMIN},
{ "{g[{GGodChat{g]", "g", "y", COMM_NOWIZ },
{ "{D[{YCommChat{D]", "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[] =
{
"Synon",
"Davion",
"Kera",
""
};
const struct vnum_type vnum_table[] =
{
{ &MOB_VNUM_FIDO, VNUM_MOB},
{ &MOB_VNUM_CITYGUARD, VNUM_MOB},
{ &MOB_VNUM_REGISTAR, VNUM_MOB},
{ &MOB_VNUM_WARMASTER, VNUM_MOB},
{ &MOB_VNUM_GGOLEM, VNUM_MOB},
{ &MOB_VNUM_STONE_GOLEM, VNUM_MOB},
{ &MOB_VNUM_IRON_GOLEM, VNUM_MOB},
{ &MOB_VNUM_ADAMANTITE_GOLEM, VNUM_MOB},
{ &MOB_VNUM_L_GOLEM, VNUM_MOB},
{ &MOB_VNUM_WOLF, VNUM_MOB},
{ &MOB_VNUM_ZOMBIE, VNUM_MOB},
{ &MOB_VNUM_SLAYER, VNUM_MOB},
{ &MOB_VNUM_MUMMY, VNUM_MOB},
{ &MOB_VNUM_SKELETON, VNUM_MOB},
{ &MOB_VNUM_RENTER, VNUM_MOB},
{ &MOB_VNUM_FAMILIAR, VNUM_MOB},
// { &MOB_VNUM_ANIMATE, VNUM_MOB},
{ &ROOM_VNUM_LIMBO, VNUM_ROOM },
{ &ROOM_VNUM_CHAT, VNUM_ROOM },
{ &ROOM_VNUM_TEMPLE, VNUM_ROOM },
{ &ROOM_VNUM_ALTAR, VNUM_ROOM },
{ &ROOM_VNUM_SCHOOL, VNUM_ROOM },
{ &ROOM_VNUM_BALANCE, VNUM_ROOM },
{ &ROOM_VNUM_CIRCLE, VNUM_ROOM },
{ &ROOM_VNUM_DEMISE, VNUM_ROOM },
{ &ROOM_VNUM_HONOR, 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 },
{ &OBJ_FRUIT_DUMMY, VNUM_OBJ },
{ &OBJ_VNUM_SBLADE, VNUM_OBJ },
{ &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_MUSHROOM, VNUM_OBJ },
{ &OBJ_VNUM_LIGHT_BALL, VNUM_OBJ },
{ &OBJ_VNUM_SPRING, VNUM_OBJ },
{ &OBJ_VNUM_DISC, VNUM_OBJ },
{ &OBJ_VNUM_PORTAL, VNUM_OBJ },
{ &OBJ_VNUM_ROSE, 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_WHISTLE, VNUM_OBJ },
{ &OBJ_VNUM_TOKEN, VNUM_OBJ },
{ &OBJ_VNUM_NORMAL, VNUM_OBJ },
{ &OBJ_VNUM_EXPERIENCE, VNUM_OBJ },
{ &OBJ_VNUM_PRACTICE, VNUM_OBJ },
{ &OBJ_VNUM_QUEST, VNUM_OBJ },
{ &OBJ_VNUM_TRAIN, 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_MAGIC_PLATE, VNUM_OBJ },
{ &OBJ_VNUM_ORE, VNUM_OBJ },
{ NULL , -1 }
};
const struct size_type cont_table[] =
{
{ "Lurin" },
{ "Acire" },
{ "Ishani" },
{ "Dhriag" },
{ "none" }
};
const struct spellfun_type spellfun_table[] =
{
{ "spell_null", spell_null },
{ "spell_acid_blast", spell_acid_blast },
{ "spell_armor", spell_armor },
{ "spell_bless", spell_bless },
{ "spell_blindness", spell_blindness },
{ "spell_burning_hands", spell_burning_hands },
{ "spell_call_lightning", spell_call_lightning },
{ "spell_calm", spell_calm },
{ "spell_cancellation", spell_cancellation },
{ "spell_cause_critical", spell_cause_critical },
{ "spell_cause_light", spell_cause_light },
{ "spell_cause_serious", spell_cause_serious },
{ "spell_change_sex", spell_change_sex },
{ "spell_chain_lightning",spell_chain_lightning },
{ "spell_charm_person", spell_charm_person },
{ "spell_chill_touch", spell_chill_touch },
{ "spell_colour_spray", spell_colour_spray },
{ "spell_continual_light",spell_continual_light },
{ "spell_control_weather",spell_control_weather },
{ "spell_create_food", spell_create_food },
{ "spell_create_rose", spell_create_rose },
{ "spell_create_spring", spell_create_spring },
{ "spell_create_water", spell_create_water },
{ "spell_cure_blindness", spell_cure_blindness },
{ "spell_cure_critical", spell_cure_critical },
{ "spell_cure_disease", spell_cure_disease },
{ "spell_cure_light", spell_cure_light },
{ "spell_cure_poison", spell_cure_poison },
{ "spell_cure_serious", spell_cure_serious },
{ "spell_curse", spell_curse },
{ "spell_dancing_sword", spell_dancing_sword },
{ "spell_demonfire", spell_demonfire },
{ "spell_detect_evil", spell_detect_evil },
{ "spell_detect_good", spell_detect_good },
{ "spell_detect_hidden", spell_detect_hidden },
{ "spell_detect_invis", spell_detect_invis },
{ "spell_detect_magic", spell_detect_magic },
{ "spell_detect_poison", spell_detect_poison },
{ "spell_dispel_evil", spell_dispel_evil },
{ "spell_dispel_good", spell_dispel_good },
{ "spell_dispel_magic", spell_dispel_magic },
{ "spell_earthquake", spell_earthquake },
{ "spell_enchant_armor", spell_enchant_armor },
{ "spell_enchant_weapon", spell_enchant_weapon },
{ "spell_energy_drain", spell_energy_drain },
{ "spell_faerie_fire", spell_faerie_fire },
{ "spell_faerie_fog", spell_faerie_fog },
{ "spell_farsight", spell_farsight },
{ "spell_fireball", spell_fireball },
{ "spell_fireproof", spell_fireproof },
{ "spell_flamestrike", spell_flamestrike },
{ "spell_floating_disc", spell_floating_disc },
{ "spell_fly", spell_fly },
{ "spell_frenzy", spell_frenzy },
{ "spell_gate", spell_gate },
{ "spell_giant_strength", spell_giant_strength },
{ "spell_harm", spell_harm },
{ "spell_haste", spell_haste },
{ "spell_heal", spell_heal },
{ "spell_heat_metal", spell_heat_metal },
{ "spell_holy_word", spell_holy_word },
{ "spell_identify", spell_identify },
{ "spell_infravision", spell_infravision },
{ "spell_invis", spell_invis },
{ "spell_know_alignment", spell_know_alignment },
{ "spell_lightning_bolt", spell_lightning_bolt },
{ "spell_locate_object", spell_locate_object },
{ "spell_energy_spike", spell_energy_spike },
{ "spell_mass_healing", spell_mass_healing },
{ "spell_mass_invis", spell_mass_invis },
{ "spell_mirror_shield", spell_mirror_shield },
{ "spell_nexus", spell_nexus },
{ "spell_pass_door", spell_pass_door },
{ "spell_plague", spell_plague },
{ "spell_poison", spell_poison },
{ "spell_portal", spell_portal },
{ "spell_protection_evil",spell_protection_evil },
{ "spell_protection_good",spell_protection_good },
{ "spell_ray_of_truth", spell_ray_of_truth },
{ "spell_recharge", spell_recharge },
{ "spell_refresh", spell_refresh },
{ "spell_remove_curse", spell_remove_curse },
{ "spell_sanctuary", spell_sanctuary },
{ "spell_shocking_grasp", spell_shocking_grasp },
{ "spell_shield", spell_shield },
{ "spell_sleep", spell_sleep },
{ "spell_slow", spell_slow },
{ "spell_stone_skin", spell_stone_skin },
{ "spell_summon", spell_summon },
{ "spell_teleport", spell_teleport },
{ "spell_ventriloquate", spell_ventriloquate },
{ "spell_weaken", spell_weaken },
{ "spell_word_of_recall", spell_word_of_recall },
{ "spell_acid_breath", spell_acid_breath },
{ "spell_fire_breath", spell_fire_breath },
{ "spell_frost_breath", spell_frost_breath },
{ "spell_gas_breath", spell_gas_breath },
{ "spell_lightning_breath",spell_lightning_breath },
{ "spell_general_purpose",spell_general_purpose },
{ "spell_high_explosive", spell_high_explosive },
{ "spell_trivia_pill", spell_trivia_pill },
{ "spell_vicegrip", spell_vicegrip },
{ "spell_hurricane", spell_hurricane },
{ "spell_greater_heal", spell_greater_heal },
{ "spell_super_heal", spell_super_heal },
{ "spell_ultimate_heal", spell_ultimate_heal },
{ "spell_group_heal", spell_group_heal },
{ "spell_bark_skin", spell_bark_skin },
{ "spell_knock", spell_knock },
{ "spell_group_defense", spell_group_defense },
{ "spell_wizards_fire", spell_wizards_fire },
{ "spell_meteor_swarm", spell_meteor_swarm },
{ "spell_group_sanctuary",spell_group_sanctuary },
{ "spell_holyblast", spell_holyblast },
{ "spell_lightningblast", spell_lightningblast },
{ "spell_electric_blast", spell_electric_blast },
{ "spell_gasblast", spell_gasblast },
{ "spell_iceblast", spell_iceblast },
{ "spell_holy_bolt", spell_holy_bolt },
{ "spell_acid_bolt", spell_acid_bolt },
{ "spell_gas_bolt", spell_gas_bolt },
{ "spell_fire_bolt", spell_fire_bolt },
{ "spell_ice_bolt", spell_ice_bolt },
{ "spell_diamond_skin", spell_diamond_skin },
{ "spell_mud_skin", spell_mud_skin },
{ "spell_moss_skin", spell_moss_skin },
{ "spell_sate", spell_sate },
{ "spell_quench", spell_quench },
{ "spell_cone_of_cold", spell_cone_of_cold },
{ "spell_synon_aura", spell_synon_aura },
{ "spell_drain_blade", spell_drain_blade },
{ "spell_shocking_blade", spell_shocking_blade },
{ "spell_flame_blade", spell_flame_blade },
{ "spell_frost_blade", spell_frost_blade },
{ "spell_sharp_blade", spell_sharp_blade },
{ "spell_vorpal_blade", spell_vorpal_blade },
{ "spell_summon_ggolem", spell_summon_ggolem },
{ "spell_fire_and_ice", spell_fire_and_ice },
{ "spell_preserve", spell_preserve },
{ "spell_sunbolt", spell_sunbolt },
{ "spell_heroes_feast", spell_heroes_feast },
{ "spell_mind_shatter", spell_mind_shatter },
{ "spell_wizards_firestorm", spell_wizards_firestorm },
{ "spell_prismatic_spray", spell_prismatic_spray },
{ "spell_revitalize", spell_revitalize },
{ "spell_sturning", spell_sturning },
{ "spell_steel_skin", spell_steel_skin },
{ "spell_tsunami", spell_tsunami },
{ "spell_shadow_shield", spell_shadow_shield },
{ "spell_weapon_bless", spell_weapon_bless },
{ "spell_dark_blessing", spell_dark_blessing },
{ "spell_divine_protection", spell_divine_protection },
{ "spell_moonblade", spell_moonblade },
{ "spell_tornado", spell_tornado },
{ "spell_wizards_fury", spell_wizards_fury },
{ "spell_glacier", spell_glacier },
{ "spell_thunderstorm", spell_thunderstorm },
{ "spell_mystic_armor", spell_mystic_armor },
{ "spell_desert_fist", spell_desert_fist },
{ "spell_resilience", spell_resilience },
{ "spell_magic_resistance", spell_magic_resistance },
{ "spell_sandstorm", spell_sandstorm },
{ "spell_fire_blade", spell_fire_blade },
{ "spell_call_wolf", spell_call_wolf },
{ "spell_random", spell_random },
{ "spell_banshee_scream", spell_banshee_scream },
{ "spell_resurrect", spell_resurrect },
{ "spell_raise_skeleton", spell_raise_skeleton },
{ "spell_iron_golem", spell_iron_golem },
{ "spell_stone_golem", spell_stone_golem },
{ "spell_adamantite_golem", spell_adamantite_golem },
{ "spell_raise_dead", spell_raise_dead },
{ "spell_magic_plate", spell_magic_plate },
{ "spell_decay_corpse", spell_decay_corpse },
{ "spell_create_mummy", spell_create_mummy },
{ "spell_call_slayer", spell_call_slayer },
{ "spell_lesser_golem", spell_lesser_golem },
{ "spell_forceshield", spell_forceshield },
{ "spell_staticshield", spell_staticshield },
{ "spell_flameshield", spell_flameshield },
{ "spell_powerstorm", spell_powerstorm },
{ "spell_animal_instinct",spell_animal_instinct },
{ "spell_earthdrain", spell_earthdrain },
{ "spell_chaos_flare", spell_chaos_flare },
{ "spell_mantle", spell_mantle },
{ "spell_arcane_magic", spell_arcane_magic },
{ "spell_animate", spell_animate },
{ "spell_essence_of_mist", spell_essence_of_mist },
{ "spell_essence_of_life", spell_essence_of_life },
{ "spell_essence_of_magic", spell_essence_of_magic },
{ "spell_lifeforce", spell_lifeforce },
{ "spell_silver_fire", spell_silver_fire },
{ "spell_soulburn", spell_soulburn },
{ "spell_icelance", spell_icelance },
{ "spell_shield_darkness", spell_shield_darkness },
{ NULL, NULL }
};
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_FIDO", &MOB_VNUM_FIDO },
{ "MOB_VNUM_CITYGUARD", &MOB_VNUM_CITYGUARD },
{ "MOB_VNUM_REGISTAR", &MOB_VNUM_REGISTAR },
{ "MOB_VNUM_WARMASTER", &MOB_VNUM_WARMASTER },
{ "MOB_VNUM_GGOLEM", &MOB_VNUM_GGOLEM },
{ "MOB_VNUM_STONE_GOLEM", &MOB_VNUM_STONE_GOLEM },
{ "MOB_VNUM_IRON_GOLEM", &MOB_VNUM_IRON_GOLEM },
{ "MOB_VNUM_ADAMANTITE_GOLEM", &MOB_VNUM_ADAMANTITE_GOLEM },
{ "MOB_VNUM_L_GOLEM", &MOB_VNUM_L_GOLEM },
{ "MOB_VNUM_WOLF", &MOB_VNUM_WOLF },
{ "MOB_VNUM_ZOMBIE", &MOB_VNUM_ZOMBIE },
{ "MOB_VNUM_SLAYER", &MOB_VNUM_SLAYER },
{ "MOB_VNUM_MUMMY", &MOB_VNUM_MUMMY },
{ "MOB_VNUM_SKELETON", &MOB_VNUM_SKELETON },
{ "MOB_VNUM_RENTER", &MOB_VNUM_RENTER },
{ "MOB_VNUM_FAMILIAR", &MOB_VNUM_FAMILIAR },
{ "MOB_VNUM_ANIMATE", &MOB_VNUM_ANIMATE },
{ "OBJ_FRUIT_DUMMY", &OBJ_FRUIT_DUMMY },
{ "OBJ_VNUM_SBLADE", &OBJ_VNUM_SBLADE },
{ "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_MUSHROOM", &OBJ_VNUM_MUSHROOM },
{ "OBJ_VNUM_LIGHT_BALL", &OBJ_VNUM_LIGHT_BALL },
{ "OBJ_VNUM_SPRING", &OBJ_VNUM_SPRING },
{ "OBJ_VNUM_DISC", &OBJ_VNUM_DISC },
{ "OBJ_VNUM_PORTAL", &OBJ_VNUM_PORTAL },
{ "OBJ_VNUM_ROSE", &OBJ_VNUM_ROSE },
{ "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_RING", &OBJ_VNUM_RING },
{ "OBJ_VNUM_BRACELET", &OBJ_VNUM_BRACELET },
{ "OBJ_VNUM_GLOVES", &OBJ_VNUM_GLOVES },
{ "OBJ_VNUM_HELMET", &OBJ_VNUM_HELMET },
{ "OBJ_VNUM_NECKLACE", &OBJ_VNUM_NECKLACE },
{ "OBJ_VNUM_SYMBOL_NOONE", &OBJ_VNUM_SYMBOL_NOONE },
{ "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_BREAD", &OBJ_VNUM_BREAD },
{ "OBJ_VNUM_BOW", &OBJ_VNUM_BOW },
{ "OBJ_VNUM_ORE", &OBJ_VNUM_ORE },
{ "OBJ_VNUM_WHISTLE", &OBJ_VNUM_WHISTLE },
{ "OBJ_VNUM_TOKEN", &OBJ_VNUM_TOKEN },
{ "OBJ_VNUM_NORMAL", &OBJ_VNUM_NORMAL },
{ "OBJ_VNUM_EXPERIENCE", &OBJ_VNUM_EXPERIENCE },
{ "OBJ_VNUM_PRACTICE", &OBJ_VNUM_PRACTICE },
{ "OBJ_VNUM_QUEST", &OBJ_VNUM_QUEST },
{ "OBJ_VNUM_TRAIN", &OBJ_VNUM_TRAIN },
{ "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_MAGIC_PLATE", &OBJ_VNUM_MAGIC_PLATE },
{ "OBJ_VNUM_STEAK", &OBJ_VNUM_STEAK },
{ "ROOM_VNUM_LIMBO", &ROOM_VNUM_LIMBO },
{ "ROOM_VNUM_CHAT", &ROOM_VNUM_CHAT },
{ "ROOM_VNUM_TEMPLE", &ROOM_VNUM_TEMPLE },
{ "ROOM_VNUM_ALTAR", &ROOM_VNUM_ALTAR },
{ "ROOM_VNUM_SCHOOL", &ROOM_VNUM_SCHOOL },
{ "ROOM_VNUM_BALANCE", &ROOM_VNUM_BALANCE },
{ "ROOM_VNUM_CIRCLE", &ROOM_VNUM_CIRCLE },
{ "ROOM_VNUM_DEMISE", &ROOM_VNUM_DEMISE },
{ "ROOM_VNUM_HONOR", &ROOM_VNUM_HONOR },
{ "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 },
{ "VNUM_START", &VNUM_START },
{ "VNUM_STOP", &VNUM_STOP },
{ "OBJ_VNUM_DIAMOND_RING", &OBJ_VNUM_DIAMOND_RING },
{ "OBJ_VNUM_WEDDING_BAND", &OBJ_VNUM_WEDDING_BAND },
{ "MIN_LEVEL_MARRY", &MIN_LEVEL_MARRY },
{ 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, 637 },
{"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 */
};