/*************************************************************************** * 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. * ***************************************************************************/ #if defined(macintosh) #include <types.h> #else #include <sys/types.h> #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include "merc.h" #include "teleport.h" ROOM_INDEX_DATA *room_by_name(char *keywords, int level, bool fError) { ROOM_INDEX_DATA *room, *result = NULL; int count = 0; int i,x,y; if (fError) { /* begin traversing list */ for (i = 0; destination[i].word_list != NULL; i++) { if (is_name(keywords,destination[i].word_list)) { for (x = 0; x < MAX_ROOMS; x++) { if (destination[i].error[x] == 0) break; room = get_room_index(destination[i].error[x]); if (room != NULL && number_range(0,count++) == 0) result = room; } } } return result; } /* traverse list for appropriate level location */ for (i = 0; destination[i].word_list != NULL; i++) { if (is_name(keywords,destination[i].word_list)) { for (x = 0; x < MAX_LIST; x++) { if (destination[i].rooms[x].level == -1) break; if (level < destination[i].rooms[x].level) continue; for (y = 0; y < MAX_ROOMS; y++) { if (destination[i].rooms[x].vnum[y] == 0) break; room = get_room_index(destination[i].rooms[x].vnum[y]); if (room != NULL && number_range(0,count++) == 0) result = room; } } } } return result; } const KEY_LIST destination[] = { { "high tower mage sorcery", { 3001 }, { { 0, { 1312 } }, {-1} } }, { "mahn-tor mahn tor minotaur", { 3001 }, { { 0, {2341,2352} }, {-1} } }, { "hell gate gates entrance", { 3001 }, { { 30, {10401} }, { 40, {10450} }, {-1} } }, { "drow city underdark", { 3001 }, { { 0, {5267, 5201} }, {-1} } }, { "arachnos spider webs", { 3001 }, { { 0, {6130} }, {-1} } }, { "dragon tower draconian", { 3001 }, { { 25, {2201} }, {-1} } }, { "galaxy stars space constellations", {10401}, { { 10, {9303} }, {-1} } }, { "catcombs", {3001}, { { 0, {6500,2001}}, {-1} } }, { "astral gate", {3001}, { { 0, {7706,7750}}, {-1} } }, { "githyanki keep", {7706}, { {10, {7750}}, {-1} } }, { "graveyard elm street chapel", {3001}, { {0, {3600}}, {-1} } }, { "nirvana balance primus", {3001}, { {30, {9000}}, {-1} } }, { "moria mines balrog", {3001}, { {0, {4029}}, {-1} } }, { "ogre village", {3001}, { { 0, {2341}}, {-1} } }, { "pyramid great desert", {3001}, { { 0, {8706}}, {-1} } }, { NULL, {}, {{}} } };