00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #if defined(macintosh)
00029 #include <types.h>
00030 #else
00031 #include <sys/types.h>
00032 #endif
00033 #include <stdio.h>
00034 #include <time.h>
00035 #include "merc.h"
00036 #include "tables.h"
00037
00038
00039
00040
00041 struct clan_data_1 clan_data[MAX_CLAN] = {
00042 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00043 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00044 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00045 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00046 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00047 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00048 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00049 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00050 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00051 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00052 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}},
00053 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
00054 };
00055
00056 struct kingdom_data_1 kingdom_data[MAX_KINGDOM] = {
00057 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},0,0},
00058 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},0,0},
00059 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},0,0},
00060 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},0,0},
00061 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},0,0},
00062 {0,NULL,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},0,0}
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073 };
00074
00075 const struct clan_type clan_table[MAX_CLAN] = {
00076
00077
00078 {"", "", ROOM_VNUM_ALTAR, TRUE, NULL, "", ""},
00079 {"Independant", "[ {WIndependant{x ] ", ROOM_VNUM_ALTAR, TRUE, NULL,
00080 "claims their Independance", ""},
00081 {"Seekers", "[ {YSeekers{x ] ", ROOM_VNUM_ALTAR, FALSE, "seekers.cla",
00082 "has joined the clan", "was kicked out of the Seekers!"},
00083 {"Thorbardin", "[ {yThorbardin{x ] ", ROOM_VNUM_ALTAR, FALSE,
00084 "thorb.cla", "has joined the clan of Thorbardin", "was kicked out of Thorbardin!"},
00085 {"White Robes", "[ {WWhite Robes{x ] ", ROOM_VNUM_ALTAR, FALSE,"white_robe.cla",
00086 "has joined the tower of white.", "has been kicked out of the White Robes!"},
00087 {"Red Robes", "[ {RRed Robes{x ] ", ROOM_VNUM_ALTAR, FALSE,"red_robe.cla",
00088 "has joined the tower of red.", "has been kicked out of the Red Robes!"},
00089 {"Black Robes", "[ {DBlack Robes{x ] ", ROOM_VNUM_ALTAR, FALSE, "black_robe.cla",
00090 "has joined the tower of the black.", "has been kicked out of the Black Tower!"},
00091 {"Skull", "[ {DSkull{x ] ", ROOM_VNUM_ALTAR, FALSE,"skull.cla",
00092 "has joined the joined Skull.","has been kicked out of Skull!"},
00093 {"Solamnia", "[ {BSolamnia{x ] ", ROOM_VNUM_ALTAR,FALSE,"solmania.cla",
00094 "has joined the clan of Solmania", "has been kicked out of Solmania"},
00095 {"Dragon Army", "[ {cDragon Army{x ] ", ROOM_VNUM_ALTAR, FALSE,"dragonarmy.cla",
00096 "has joined the clan of Dragonarmy", "was kicked out of Dragonarmy!"},
00097 {"R_Dragon", "({GDragon{x) ", ROOM_VNUM_VOID, FALSE, "dragon.cla",
00098 "has joined the Dragon forces.", "has been removed from the Dragon forces!"},
00099 {"Que-Shu", "[ {RQue-{RShu{x ] ", ROOM_VNUM_ALTAR, FALSE, "que.cla",
00100 "has joined the clan of Que-Shu", "has been kicked out of Que-Shu!"}
00101
00102 };
00103
00104 const struct kingdom_type kingdom_table[MAX_KINGDOM] = {
00105
00106 {"", "", ROOM_VNUM_ALTAR, TRUE, NULL, "", ""},
00107 {"Valmark", "{C({DValmark{C){x ", ROOM_VNUM_ALTAR, TRUE, "valmark.kin",
00108 "has joined the kingdom of Valmark!", "was kicked out of Valmark!"},
00109 {"Ethiel", "{c({DEthiel{c){x ", ROOM_VNUM_ALTAR, TRUE, "ethiel.kin",
00110 "has joined the kingdom of Ethiel", "was kicked out of Ethiel!"},
00111 {"Ellisgrad", "{c({DEllisgrad{c){x ", ROOM_VNUM_ALTAR, TRUE,"ellisgrad.kin",
00112 "has joined the kingdom of Ellisgrad", "was kicked out of Ellisgrad"},
00113 {"New Mesana", "{c({DNew Mesana{c){x ", ROOM_VNUM_ALTAR, TRUE, "nm.kin",
00114 "has joined the kingdom of New Mesana", "has been kicked out of New Mesana!"},
00115 {"Mesanopolis", "{c({DMesanopolis{c){x ", ROOM_VNUM_ALTAR, TRUE,"mesano.kin",
00116 "has joined the kingdom of Mesanopolis", "has been kicked out of Mesanopolis!"}
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131 };
00132
00133 const struct dragon_type dragon_table[2] = {
00134
00135 {"", "", ROOM_VNUM_ALTAR, TRUE},
00136 {"evil", "black", ROOM_VNUM_ALTAR, TRUE}
00137 };
00138
00139 const struct position_type position_table[] = {
00140 {"dead", "dead"},
00141 {"mortally wounded", "mort"},
00142 {"incapacitated", "incap"},
00143 {"stunned", "stun"},
00144 {"sleeping", "sleep"},
00145 {"resting", "rest"},
00146 {"sitting", "sit"},
00147 {"fighting", "fight"},
00148 {"standing", "stand"},
00149 {NULL, NULL}
00150 };
00151
00152
00153 const struct sex_type sex_table[] = {
00154 {"none"},
00155 {"male"},
00156 {"female"},
00157 {"either"},
00158 {NULL}
00159 };
00160
00161
00162 const struct size_type size_table[] = {
00163 {"tiny"},
00164 {"small"},
00165 {"medium"},
00166 {"large"},
00167 {"huge",},
00168 {"giant"},
00169 {NULL}
00170 };
00171
00172
00173 const struct flag_type act_flags[] = {
00174 {"npc", A, FALSE},
00175 {"sentinel", B, TRUE},
00176 {"scavenger", C, TRUE},
00177 {"aggressive", F, TRUE},
00178 {"mountable", D, TRUE},
00179 {"stay_area", G, TRUE},
00180 {"wimpy", H, TRUE},
00181 {"pet", I, TRUE},
00182 {"train", J, TRUE},
00183 {"practice", K, TRUE},
00184 {"undead", O, TRUE},
00185 {"cleric", Q, TRUE},
00186 {"mage", R, TRUE},
00187 {"thief", S, TRUE},
00188 {"warrior", T, TRUE},
00189 {"noalign", U, TRUE},
00190 {"nopurge", V, TRUE},
00191 {"outdoors", W, TRUE},
00192 {"indoors", Y, TRUE},
00193 {"healer", aa, TRUE},
00194 {"gain", bb, TRUE},
00195 {"update_always", cc, TRUE},
00196 {"changer", dd, TRUE},
00197 {NULL, 0, FALSE}
00198 };
00199
00200 const struct flag_type plr_flags[] = {
00201 {"npc", A, FALSE},
00202 {"autoassist", C, FALSE},
00203 {"autoexit", D, FALSE},
00204 {"autoloot", E, FALSE},
00205 {"autosac", F, FALSE},
00206 {"autogold", G, FALSE},
00207 {"autosplit", H, FALSE},
00208 {"holylight", N, FALSE},
00209 {"can_loot", P, FALSE},
00210 {"nosummon", Q, FALSE},
00211 {"nofollow", R, FALSE},
00212 {"colour", T, FALSE},
00213 {"permit", U, TRUE},
00214 {"log", W, FALSE},
00215 {"deny", X, FALSE},
00216 {"freeze", Y, FALSE},
00217 {"thief", Z, FALSE},
00218 {"killer", aa, FALSE},
00219 {NULL, 0, 0}
00220 };
00221
00222 const struct flag_type affect_flags[] = {
00223 {"blind", A, TRUE},
00224 {"invisible", B, TRUE},
00225 {"detect_evil", C, TRUE},
00226 {"detect_invis", D, TRUE},
00227 {"detect_magic", E, TRUE},
00228 {"detect_hidden", F, TRUE},
00229 {"detect_good", G, TRUE},
00230 {"sanctuary", H, TRUE},
00231 {"faerie_fire", I, TRUE},
00232 {"infrared", J, TRUE},
00233 {"curse", K, TRUE},
00234 {"poison", M, TRUE},
00235 {"protect_evil", N, TRUE},
00236 {"protect_good", O, TRUE},
00237 {"sneak", P, TRUE},
00238 {"hide", Q, TRUE},
00239 {"sleep", R, TRUE},
00240 {"charm", S, TRUE},
00241 {"flying", T, TRUE},
00242 {"pass_door", U, TRUE},
00243 {"haste", V, TRUE},
00244 {"calm", W, TRUE},
00245 {"plague", X, TRUE},
00246 {"weaken", Y, TRUE},
00247 {"dark_vision", Z, TRUE},
00248 {"berserk", aa, TRUE},
00249 {"swim", bb, TRUE},
00250 {"regeneration", cc, TRUE},
00251 {"slow", dd, TRUE},
00252 {NULL, 0, 0}
00253 };
00254
00255 const struct flag_type off_flags[] = {
00256 {"area_attack", A, TRUE},
00257 {"backstab", B, TRUE},
00258 {"bash", C, TRUE},
00259 {"berserk", D, TRUE},
00260 {"disarm", E, TRUE},
00261 {"dodge", F, TRUE},
00262 {"fade", G, TRUE},
00263 {"fast", H, TRUE},
00264 {"kick", I, TRUE},
00265 {"dirt_kick", J, TRUE},
00266 {"parry", K, TRUE},
00267 {"rescue", L, TRUE},
00268 {"tail", M, TRUE},
00269 {"trip", N, TRUE},
00270 {"crush", O, TRUE},
00271 {"assist_all", P, TRUE},
00272 {"assist_align", Q, TRUE},
00273 {"assist_race", R, TRUE},
00274 {"assist_players", S, TRUE},
00275 {"assist_guard", T, TRUE},
00276 {"assist_vnum", U, TRUE},
00277 {NULL, 0, 0}
00278 };
00279
00280 const struct flag_type imm_flags[] = {
00281 {"summon", A, TRUE},
00282 {"charm", B, TRUE},
00283 {"magic", C, TRUE},
00284 {"weapon", D, TRUE},
00285 {"bash", E, TRUE},
00286 {"pierce", F, TRUE},
00287 {"slash", G, TRUE},
00288 {"fire", H, TRUE},
00289 {"cold", I, TRUE},
00290 {"lightning", J, TRUE},
00291 {"acid", K, TRUE},
00292 {"poison", L, TRUE},
00293 {"negative", M, TRUE},
00294 {"holy", N, TRUE},
00295 {"energy", O, TRUE},
00296 {"mental", P, TRUE},
00297 {"disease", Q, TRUE},
00298 {"drowning", R, TRUE},
00299 {"light", S, TRUE},
00300 {"sound", T, TRUE},
00301 {"wood", X, TRUE},
00302 {"silver", Y, TRUE},
00303 {"iron", Z, TRUE},
00304 {NULL, 0, 0}
00305 };
00306
00307 const struct flag_type form_flags[] = {
00308 {"edible", FORM_EDIBLE, TRUE},
00309 {"poison", FORM_POISON, TRUE},
00310 {"magical", FORM_MAGICAL, TRUE},
00311 {"instant_decay", FORM_INSTANT_DECAY, TRUE},
00312 {"other", FORM_OTHER, TRUE},
00313 {"animal", FORM_ANIMAL, TRUE},
00314 {"sentient", FORM_SENTIENT, TRUE},
00315 {"undead", FORM_UNDEAD, TRUE},
00316 {"construct", FORM_CONSTRUCT, TRUE},
00317 {"mist", FORM_MIST, TRUE},
00318 {"intangible", FORM_INTANGIBLE, TRUE},
00319 {"biped", FORM_BIPED, TRUE},
00320 {"centaur", FORM_CENTAUR, TRUE},
00321 {"insect", FORM_INSECT, TRUE},
00322 {"spider", FORM_SPIDER, TRUE},
00323 {"crustacean", FORM_CRUSTACEAN, TRUE},
00324 {"worm", FORM_WORM, TRUE},
00325 {"blob", FORM_BLOB, TRUE},
00326 {"mammal", FORM_MAMMAL, TRUE},
00327 {"bird", FORM_BIRD, TRUE},
00328 {"reptile", FORM_REPTILE, TRUE},
00329 {"snake", FORM_SNAKE, TRUE},
00330 {"dragon", FORM_DRAGON, TRUE},
00331 {"amphibian", FORM_AMPHIBIAN, TRUE},
00332 {"fish", FORM_FISH, TRUE},
00333 {"cold_blood", FORM_COLD_BLOOD, TRUE},
00334 {NULL, 0, 0}
00335 };
00336
00337 const struct flag_type part_flags[] = {
00338 {"head", PART_HEAD, TRUE},
00339 {"arms", PART_ARMS, TRUE},
00340 {"legs", PART_LEGS, TRUE},
00341 {"heart", PART_HEART, TRUE},
00342 {"brains", PART_BRAINS, TRUE},
00343 {"guts", PART_GUTS, TRUE},
00344 {"hands", PART_HANDS, TRUE},
00345 {"feet", PART_FEET, TRUE},
00346 {"fingers", PART_FINGERS, TRUE},
00347 {"ear", PART_EAR, TRUE},
00348 {"eye", PART_EYE, TRUE},
00349 {"long_tongue", PART_LONG_TONGUE, TRUE},
00350 {"eyestalks", PART_EYESTALKS, TRUE},
00351 {"tentacles", PART_TENTACLES, TRUE},
00352 {"fins", PART_FINS, TRUE},
00353 {"wings", PART_WINGS, TRUE},
00354 {"tail", PART_TAIL, TRUE},
00355 {"claws", PART_CLAWS, TRUE},
00356 {"fangs", PART_FANGS, TRUE},
00357 {"horns", PART_HORNS, TRUE},
00358 {"scales", PART_SCALES, TRUE},
00359 {"tusks", PART_TUSKS, TRUE},
00360 {NULL, 0, 0}
00361 };
00362
00363 const struct flag_type comm_flags[] = {
00364 {"quiet", COMM_QUIET, TRUE},
00365 {"deaf", COMM_DEAF, TRUE},
00366 {"nowiz", COMM_NOWIZ, TRUE},
00367 {"noclangossip", COMM_NOAUCTION, TRUE},
00368 {"nogossip", COMM_NOGOSSIP, TRUE},
00369 {"noquestion", COMM_NOQUESTION, TRUE},
00370 {"nomusic", COMM_NOMUSIC, TRUE},
00371 {"noclan", COMM_NOCLAN, TRUE},
00372 {"noquote", COMM_NOQUOTE, TRUE},
00373 {"shoutsoff", COMM_SHOUTSOFF, TRUE},
00374 {"compact", COMM_COMPACT, TRUE},
00375 {"brief", COMM_BRIEF, TRUE},
00376 {"prompt", COMM_PROMPT, TRUE},
00377 {"combine", COMM_COMBINE, TRUE},
00378 {"telnet_ga", COMM_TELNET_GA, TRUE},
00379 {"show_affects", COMM_SHOW_AFFECTS, TRUE},
00380 {"nograts", COMM_NOGRATS, TRUE},
00381 {"noemote", COMM_NOEMOTE, FALSE},
00382 {"noshout", COMM_NOSHOUT, FALSE},
00383 {"notell", COMM_NOTELL, FALSE},
00384 {"nochannels", COMM_NOCHANNELS, FALSE},
00385 {"snoop_proof", COMM_SNOOP_PROOF, FALSE},
00386 {"afk", COMM_AFK, TRUE},
00387 {NULL, 0, 0}
00388 };
00389
00390 const struct flag_type mprog_flags[] = {
00391 {"act", TRIG_ACT, TRUE},
00392 {"bribe", TRIG_BRIBE, TRUE},
00393 {"death", TRIG_DEATH, TRUE},
00394 {"entry", TRIG_ENTRY, TRUE},
00395 {"fight", TRIG_FIGHT, TRUE},
00396 {"give", TRIG_GIVE, TRUE},
00397 {"greet", TRIG_GREET, TRUE},
00398 {"grall", TRIG_GRALL, TRUE},
00399 {"kill", TRIG_KILL, TRUE},
00400 {"hpcnt", TRIG_HPCNT, TRUE},
00401 {"random", TRIG_RANDOM, TRUE},
00402 {"speech", TRIG_SPEECH, TRUE},
00403 {"exit", TRIG_EXIT, TRUE},
00404 {"exall", TRIG_EXALL, TRUE},
00405 {"delay", TRIG_DELAY, TRUE},
00406 {"surr", TRIG_SURR, TRUE},
00407 {NULL, 0, TRUE}
00408 };
00409
00410 const struct flag_type area_flags[] = {
00411 {"none", AREA_NONE, FALSE},
00412 {"changed", AREA_CHANGED, TRUE},
00413 {"added", AREA_ADDED, TRUE},
00414 {"loading", AREA_LOADING, FALSE},
00415 {NULL, 0, 0}
00416 };
00417
00418
00419
00420 const struct flag_type sex_flags[] = {
00421 {"male", SEX_MALE, TRUE},
00422 {"female", SEX_FEMALE, TRUE},
00423 {"neutral", SEX_NEUTRAL, TRUE},
00424 {"random", 3, TRUE},
00425 {"none", SEX_NEUTRAL, TRUE},
00426 {NULL, 0, 0}
00427 };
00428
00429
00430
00431 const struct flag_type exit_flags[] = {
00432 {"door", EX_ISDOOR, TRUE},
00433 {"closed", EX_CLOSED, TRUE},
00434 {"locked", EX_LOCKED, TRUE},
00435 {"pickproof", EX_PICKPROOF, TRUE},
00436 {"nopass", EX_NOPASS, TRUE},
00437 {"easy", EX_EASY, TRUE},
00438 {"hard", EX_HARD, TRUE},
00439 {"infuriating", EX_INFURIATING, TRUE},
00440 {"noclose", EX_NOCLOSE, TRUE},
00441 {"nolock", EX_NOLOCK, TRUE},
00442 {NULL, 0, 0}
00443 };
00444
00445
00446
00447 const struct flag_type door_resets[] = {
00448 {"open and unlocked", 0, TRUE},
00449 {"closed and unlocked", 1, TRUE},
00450 {"closed and locked", 2, TRUE},
00451 {NULL, 0, 0}
00452 };
00453
00454
00455
00456 const struct flag_type room_flags[] = {
00457 {"dark", ROOM_DARK, TRUE},
00458 {"no_mob", ROOM_NO_MOB, TRUE},
00459 {"indoors", ROOM_INDOORS, TRUE},
00460 {"private", ROOM_PRIVATE, TRUE},
00461 {"safe", ROOM_SAFE, TRUE},
00462 {"solitary", ROOM_SOLITARY, TRUE},
00463 {"pet_shop", ROOM_PET_SHOP, TRUE},
00464 {"no_recall", ROOM_NO_RECALL, TRUE},
00465 {"imp_only", ROOM_IMP_ONLY, TRUE},
00466 {"gods_only", ROOM_GODS_ONLY, TRUE},
00467 {"heroes_only", ROOM_HEROES_ONLY, TRUE},
00468 {"newbies_only", ROOM_NEWBIES_ONLY, TRUE},
00469 {"law", ROOM_LAW, TRUE},
00470 {"nowhere", ROOM_NOWHERE, TRUE},
00471
00472
00473 {"no_where", ROOM_NO_WHERE, TRUE},
00474 {"no_death", ROOM_NO_DEATH, TRUE},
00475 {NULL, 0, 0}
00476 };
00477 const struct flag_type room_flags_extra[] = {
00478 {"no_where", ROOM_NO_WHERE, TRUE},
00479 {NULL, 0,0}
00480
00481 };
00482
00483
00484 const struct flag_type sector_flags[] = {
00485 {"inside", SECT_INSIDE, TRUE},
00486 {"city", SECT_CITY, TRUE},
00487 {"field", SECT_FIELD, TRUE},
00488 {"forest", SECT_FOREST, TRUE},
00489 {"hills", SECT_HILLS, TRUE},
00490 {"mountain", SECT_MOUNTAIN, TRUE},
00491 {"swim", SECT_WATER_SWIM, TRUE},
00492 {"noswim", SECT_WATER_NOSWIM, TRUE},
00493 {"unused", SECT_UNUSED, TRUE},
00494 {"air", SECT_AIR, TRUE},
00495 {"desert", SECT_DESERT, TRUE},
00496 {"arena", SECT_ARENA, TRUE},
00497 {NULL, 0, 0}
00498 };
00499
00500
00501
00502 const struct flag_type type_flags[] = {
00503 {"light", ITEM_LIGHT, TRUE},
00504 {"scroll", ITEM_SCROLL, TRUE},
00505 {"wand", ITEM_WAND, TRUE},
00506 {"staff", ITEM_STAFF, TRUE},
00507 {"weapon", ITEM_WEAPON, TRUE},
00508 {"treasure", ITEM_TREASURE, TRUE},
00509 {"armor", ITEM_ARMOR, TRUE},
00510 {"potion", ITEM_POTION, TRUE},
00511 {"furniture", ITEM_FURNITURE, TRUE},
00512 {"trash", ITEM_TRASH, TRUE},
00513 {"container", ITEM_CONTAINER, TRUE},
00514 {"drinkcontainer", ITEM_DRINK_CON, TRUE},
00515 {"key", ITEM_KEY, TRUE},
00516 {"food", ITEM_FOOD, TRUE},
00517 {"money", ITEM_MONEY, TRUE},
00518 {"boat", ITEM_BOAT, TRUE},
00519 {"npccorpse", ITEM_CORPSE_NPC, TRUE},
00520 {"pc corpse", ITEM_CORPSE_PC, FALSE},
00521 {"fountain", ITEM_FOUNTAIN, TRUE},
00522 {"pill", ITEM_PILL, TRUE},
00523 {"protect", ITEM_PROTECT, TRUE},
00524 {"map", ITEM_MAP, TRUE},
00525 {"portal", ITEM_PORTAL, TRUE},
00526 {"warpstone", ITEM_WARP_STONE, TRUE},
00527 {"roomkey", ITEM_ROOM_KEY, TRUE},
00528 {"gem", ITEM_GEM, TRUE},
00529 {"jewelry", ITEM_JEWELRY, TRUE},
00530 {"jukebox", ITEM_JUKEBOX, TRUE},
00531 {"tailoring_leather", TAILOR_LEAT, TRUE},
00532 {NULL, 0, 0}
00533 };
00534
00535
00536 const struct flag_type extra_flags[] = {
00537 {"glow", ITEM_GLOW, TRUE},
00538 {"hum", ITEM_HUM, TRUE},
00539 {"dark", ITEM_DARK, TRUE},
00540 {"lock", ITEM_LOCK, TRUE},
00541 {"evil", ITEM_EVIL, TRUE},
00542 {"invis", ITEM_INVIS, TRUE},
00543 {"magic", ITEM_MAGIC, TRUE},
00544 {"nodrop", ITEM_NODROP, TRUE},
00545 {"bless", ITEM_BLESS, TRUE},
00546 {"antigood", ITEM_ANTI_GOOD, TRUE},
00547 {"antievil", ITEM_ANTI_EVIL, TRUE},
00548 {"antineutral", ITEM_ANTI_NEUTRAL, TRUE},
00549 {"noremove", ITEM_NOREMOVE, TRUE},
00550 {"inventory", ITEM_INVENTORY, TRUE},
00551 {"nopurge", ITEM_NOPURGE, TRUE},
00552 {"rotdeath", ITEM_ROT_DEATH, TRUE},
00553 {"visdeath", ITEM_VIS_DEATH, TRUE},
00554 {"nonmetal", ITEM_NONMETAL, TRUE},
00555 {"meltdrop", ITEM_MELT_DROP, TRUE},
00556 {"hadtimer", ITEM_HAD_TIMER, TRUE},
00557 {"sellextract", ITEM_SELL_EXTRACT, TRUE},
00558 {"burnproof", ITEM_BURN_PROOF, TRUE},
00559 {"nouncurse", ITEM_NOUNCURSE, TRUE},
00560 {NULL, 0, 0}
00561 };
00562
00563
00564
00565 const struct flag_type wear_flags[] = {
00566 {"take", ITEM_TAKE, TRUE},
00567 {"finger", ITEM_WEAR_FINGER, TRUE},
00568 {"neck", ITEM_WEAR_NECK, TRUE},
00569 {"body", ITEM_WEAR_BODY, TRUE},
00570 {"head", ITEM_WEAR_HEAD, TRUE},
00571 {"legs", ITEM_WEAR_LEGS, TRUE},
00572 {"feet", ITEM_WEAR_FEET, TRUE},
00573 {"hands", ITEM_WEAR_HANDS, TRUE},
00574 {"arms", ITEM_WEAR_ARMS, TRUE},
00575 {"shield", ITEM_WEAR_SHIELD, TRUE},
00576 {"about", ITEM_WEAR_ABOUT, TRUE},
00577 {"waist", ITEM_WEAR_WAIST, TRUE},
00578 {"wrist", ITEM_WEAR_WRIST, TRUE},
00579 {"wield", ITEM_WIELD, TRUE},
00580 {"hold", ITEM_HOLD, TRUE},
00581 {"nosac", ITEM_NO_SAC, TRUE},
00582 {"wearfloat", ITEM_WEAR_FLOAT, TRUE},
00583
00584 {NULL, 0, 0}
00585 };
00586
00587
00588
00589
00590
00591 const struct flag_type apply_flags[] = {
00592 {"none", APPLY_NONE, TRUE},
00593 {"strength", APPLY_STR, TRUE},
00594 {"dexterity", APPLY_DEX, TRUE},
00595 {"intelligence", APPLY_INT, TRUE},
00596 {"wisdom", APPLY_WIS, TRUE},
00597 {"constitution", APPLY_CON, TRUE},
00598 {"sex", APPLY_SEX, TRUE},
00599 {"class", APPLY_CLASS, TRUE},
00600 {"level", APPLY_LEVEL, TRUE},
00601 {"age", APPLY_AGE, TRUE},
00602 {"height", APPLY_HEIGHT, TRUE},
00603 {"weight", APPLY_WEIGHT, TRUE},
00604 {"mana", APPLY_MANA, TRUE},
00605 {"hp", APPLY_HIT, TRUE},
00606 {"move", APPLY_MOVE, TRUE},
00607 {"gold", APPLY_GOLD, TRUE},
00608 {"experience", APPLY_EXP, TRUE},
00609 {"ac", APPLY_AC, TRUE},
00610 {"hitroll", APPLY_HITROLL, TRUE},
00611 {"damroll", APPLY_DAMROLL, TRUE},
00612 {"saves", APPLY_SAVES, TRUE},
00613 {"savingpara", APPLY_SAVING_PARA, TRUE},
00614 {"savingrod", APPLY_SAVING_ROD, TRUE},
00615 {"savingpetri", APPLY_SAVING_PETRI, TRUE},
00616 {"savingbreath", APPLY_SAVING_BREATH, TRUE},
00617 {"savingspell", APPLY_SAVING_SPELL, TRUE},
00618 {"spellaffect", APPLY_SPELL_AFFECT, FALSE},
00619 {NULL, 0, 0}
00620 };
00621
00622
00623
00624
00625
00626
00627 const struct flag_type wear_loc_strings[] = {
00628 {"in the inventory", WEAR_NONE, TRUE},
00629 {"as a light", WEAR_LIGHT, TRUE},
00630 {"on the left finger", WEAR_FINGER_L, TRUE},
00631 {"on the right finger", WEAR_FINGER_R, TRUE},
00632 {"around the neck (1)", WEAR_NECK_1, TRUE},
00633 {"around the neck (2)", WEAR_NECK_2, TRUE},
00634 {"on the body", WEAR_BODY, TRUE},
00635 {"over the head", WEAR_HEAD, TRUE},
00636 {"on the legs", WEAR_LEGS, TRUE},
00637 {"on the feet", WEAR_FEET, TRUE},
00638 {"on the hands", WEAR_HANDS, TRUE},
00639 {"on the arms", WEAR_ARMS, TRUE},
00640 {"as a shield", WEAR_SHIELD, TRUE},
00641 {"about the shoulders", WEAR_ABOUT, TRUE},
00642 {"around the waist", WEAR_WAIST, TRUE},
00643 {"on the left wrist", WEAR_WRIST_L, TRUE},
00644 {"on the right wrist", WEAR_WRIST_R, TRUE},
00645 {"wielded", WEAR_WIELD, TRUE},
00646 {"held in the hands", WEAR_HOLD, TRUE},
00647 {"floating nearby", WEAR_FLOAT, TRUE},
00648 {NULL, 0, 0}
00649 };
00650
00651
00652 const struct flag_type wear_loc_flags[] = {
00653 {"none", WEAR_NONE, TRUE},
00654 {"light", WEAR_LIGHT, TRUE},
00655 {"lfinger", WEAR_FINGER_L, TRUE},
00656 {"rfinger", WEAR_FINGER_R, TRUE},
00657 {"neck1", WEAR_NECK_1, TRUE},
00658 {"neck2", WEAR_NECK_2, TRUE},
00659 {"body", WEAR_BODY, TRUE},
00660 {"head", WEAR_HEAD, TRUE},
00661 {"legs", WEAR_LEGS, TRUE},
00662 {"feet", WEAR_FEET, TRUE},
00663 {"hands", WEAR_HANDS, TRUE},
00664 {"arms", WEAR_ARMS, TRUE},
00665 {"shield", WEAR_SHIELD, TRUE},
00666 {"about", WEAR_ABOUT, TRUE},
00667 {"waist", WEAR_WAIST, TRUE},
00668 {"lwrist", WEAR_WRIST_L, TRUE},
00669 {"rwrist", WEAR_WRIST_R, TRUE},
00670 {"wielded", WEAR_WIELD, TRUE},
00671 {"hold", WEAR_HOLD, TRUE},
00672 {"floating", WEAR_FLOAT, TRUE},
00673 {NULL, 0, 0}
00674 };
00675
00676 const struct flag_type container_flags[] = {
00677 {"closeable", 1, TRUE},
00678 {"pickproof", 2, TRUE},
00679 {"closed", 4, TRUE},
00680 {"locked", 8, TRUE},
00681 {"puton", 16, TRUE},
00682 {NULL, 0, 0}
00683 };
00684
00685
00686
00687
00688
00689
00690
00691
00692 const struct flag_type ac_type[] = {
00693 {"pierce", AC_PIERCE, TRUE},
00694 {"bash", AC_BASH, TRUE},
00695 {"slash", AC_SLASH, TRUE},
00696 {"exotic", AC_EXOTIC, TRUE},
00697 {NULL, 0, 0}
00698 };
00699
00700
00701 const struct flag_type size_flags[] = {
00702 {"tiny", SIZE_TINY, TRUE},
00703 {"small", SIZE_SMALL, TRUE},
00704 {"medium", SIZE_MEDIUM, TRUE},
00705 {"large", SIZE_LARGE, TRUE},
00706 {"huge", SIZE_HUGE, TRUE},
00707 {"giant", SIZE_GIANT, TRUE},
00708 {NULL, 0, 0},
00709 };
00710
00711
00712 const struct flag_type weapon_class[] = {
00713 {"exotic", WEAPON_EXOTIC, TRUE},
00714 {"sword", WEAPON_SWORD, TRUE},
00715 {"dagger", WEAPON_DAGGER, TRUE},
00716 {"spear", WEAPON_SPEAR, TRUE},
00717 {"mace", WEAPON_MACE, TRUE},
00718 {"axe", WEAPON_AXE, TRUE},
00719 {"flail", WEAPON_FLAIL, TRUE},
00720 {"whip", WEAPON_WHIP, TRUE},
00721 {"polearm", WEAPON_POLEARM, TRUE},
00722 {NULL, 0, 0}
00723 };
00724
00725
00726 const struct flag_type weapon_type2[] = {
00727 {"flaming", WEAPON_FLAMING, TRUE},
00728 {"frost", WEAPON_FROST, TRUE},
00729 {"vampiric", WEAPON_VAMPIRIC, TRUE},
00730 {"sharp", WEAPON_SHARP, TRUE},
00731 {"vorpal", WEAPON_VORPAL, TRUE},
00732 {"twohands", WEAPON_TWO_HANDS, TRUE},
00733 {"shocking", WEAPON_SHOCKING, TRUE},
00734 {"poison", WEAPON_POISON, TRUE},
00735 {NULL, 0, 0}
00736 };
00737
00738 const struct flag_type res_flags[] = {
00739 {"summon", RES_SUMMON, TRUE},
00740 {"charm", RES_CHARM, TRUE},
00741 {"magic", RES_MAGIC, TRUE},
00742 {"weapon", RES_WEAPON, TRUE},
00743 {"bash", RES_BASH, TRUE},
00744 {"pierce", RES_PIERCE, TRUE},
00745 {"slash", RES_SLASH, TRUE},
00746 {"fire", RES_FIRE, TRUE},
00747 {"cold", RES_COLD, TRUE},
00748 {"lightning", RES_LIGHTNING, TRUE},
00749 {"acid", RES_ACID, TRUE},
00750 {"poison", RES_POISON, TRUE},
00751 {"negative", RES_NEGATIVE, TRUE},
00752 {"holy", RES_HOLY, TRUE},
00753 {"energy", RES_ENERGY, TRUE},
00754 {"mental", RES_MENTAL, TRUE},
00755 {"disease", RES_DISEASE, TRUE},
00756 {"drowning", RES_DROWNING, TRUE},
00757 {"light", RES_LIGHT, TRUE},
00758 {"sound", RES_SOUND, TRUE},
00759 {"wood", RES_WOOD, TRUE},
00760 {"silver", RES_SILVER, TRUE},
00761 {"iron", RES_IRON, TRUE},
00762 {NULL, 0, 0}
00763 };
00764
00765
00766 const struct flag_type vuln_flags[] = {
00767 {"summon", VULN_SUMMON, TRUE},
00768 {"charm", VULN_CHARM, TRUE},
00769 {"magic", VULN_MAGIC, TRUE},
00770 {"weapon", VULN_WEAPON, TRUE},
00771 {"bash", VULN_BASH, TRUE},
00772 {"pierce", VULN_PIERCE, TRUE},
00773 {"slash", VULN_SLASH, TRUE},
00774 {"fire", VULN_FIRE, TRUE},
00775 {"cold", VULN_COLD, TRUE},
00776 {"lightning", VULN_LIGHTNING, TRUE},
00777 {"acid", VULN_ACID, TRUE},
00778 {"poison", VULN_POISON, TRUE},
00779 {"negative", VULN_NEGATIVE, TRUE},
00780 {"holy", VULN_HOLY, TRUE},
00781 {"energy", VULN_ENERGY, TRUE},
00782 {"mental", VULN_MENTAL, TRUE},
00783 {"disease", VULN_DISEASE, TRUE},
00784 {"drowning", VULN_DROWNING, TRUE},
00785 {"light", VULN_LIGHT, TRUE},
00786 {"sound", VULN_SOUND, TRUE},
00787 {"wood", VULN_WOOD, TRUE},
00788 {"silver", VULN_SILVER, TRUE},
00789 {"iron", VULN_IRON, TRUE},
00790 {NULL, 0, 0}
00791 };
00792
00793 const struct flag_type position_flags[] = {
00794 {"dead", POS_DEAD, FALSE},
00795 {"mortal", POS_MORTAL, FALSE},
00796 {"incap", POS_INCAP, FALSE},
00797 {"stunned", POS_STUNNED, FALSE},
00798 {"sleeping", POS_SLEEPING, TRUE},
00799 {"resting", POS_RESTING, TRUE},
00800 {"sitting", POS_SITTING, TRUE},
00801 {"fighting", POS_FIGHTING, FALSE},
00802 {"standing", POS_STANDING, TRUE},
00803 {NULL, 0, 0}
00804 };
00805
00806 const struct flag_type portal_flags[] = {
00807 {"normal_exit", GATE_NORMAL_EXIT, TRUE},
00808 {"no_curse", GATE_NOCURSE, TRUE},
00809 {"go_with", GATE_GOWITH, TRUE},
00810 {"buggy", GATE_BUGGY, TRUE},
00811 {"random", GATE_RANDOM, TRUE},
00812 {NULL, 0, 0}
00813 };
00814
00815 const struct flag_type furniture_flags[] = {
00816 {"stand_at", STAND_AT, TRUE},
00817 {"stand_on", STAND_ON, TRUE},
00818 {"stand_in", STAND_IN, TRUE},
00819 {"sit_at", SIT_AT, TRUE},
00820 {"sit_on", SIT_ON, TRUE},
00821 {"sit_in", SIT_IN, TRUE},
00822 {"rest_at", REST_AT, TRUE},
00823 {"rest_on", REST_ON, TRUE},
00824 {"rest_in", REST_IN, TRUE},
00825 {"sleep_at", SLEEP_AT, TRUE},
00826 {"sleep_on", SLEEP_ON, TRUE},
00827 {"sleep_in", SLEEP_IN, TRUE},
00828 {"put_at", PUT_AT, TRUE},
00829 {"put_on", PUT_ON, TRUE},
00830 {"put_in", PUT_IN, TRUE},
00831 {"put_inside", PUT_INSIDE, TRUE},
00832 {NULL, 0, 0}
00833 };
00834
00835 const struct flag_type apply_types[] = {
00836 {"affects", TO_AFFECTS, TRUE},
00837 {"object", TO_OBJECT, TRUE},
00838 {"immune", TO_IMMUNE, TRUE},
00839 {"resist", TO_RESIST, TRUE},
00840 {"vuln", TO_VULN, TRUE},
00841 {"weapon", TO_WEAPON, TRUE},
00842 {NULL, 0, TRUE}
00843 };
00844
00845 const struct bit_type bitvector_type[] = {
00846 {affect_flags, "affect"},
00847 {apply_flags, "apply"},
00848 {imm_flags, "imm"},
00849 {res_flags, "res"},
00850 {vuln_flags, "vuln"},
00851 {weapon_type2, "weapon"}
00852 };