final_realms_fluffos_v1/
final_realms_fluffos_v1/bin/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/ChangeLog.old/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/Win32/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/simuls/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/clone/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/command/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/data/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/etc/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/master/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/log/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/compiler/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/efuns/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/operators/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/u/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/tmp/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/windows/
final_realms_fluffos_v1/lib/baseobs/guilds/
final_realms_fluffos_v1/lib/baseobs/misc/
final_realms_fluffos_v1/lib/baseobs/races/shadows/
final_realms_fluffos_v1/lib/cmds/god/
final_realms_fluffos_v1/lib/cmds/handlers/
final_realms_fluffos_v1/lib/cmds/handlers/cmds/
final_realms_fluffos_v1/lib/d/heaven/
final_realms_fluffos_v1/lib/d/heaven/heaven/ave/
final_realms_fluffos_v1/lib/d/mudlib/
final_realms_fluffos_v1/lib/d/newbie/
final_realms_fluffos_v1/lib/d/newbie/docs/
final_realms_fluffos_v1/lib/d/newbie/drow/armour/
final_realms_fluffos_v1/lib/d/newbie/drow/items/
final_realms_fluffos_v1/lib/d/newbie/drow/mobs/
final_realms_fluffos_v1/lib/d/newbie/drow/oldmobs/
final_realms_fluffos_v1/lib/d/newbie/drow/weapons/
final_realms_fluffos_v1/lib/d/newbie/duergar/weapons/
final_realms_fluffos_v1/lib/d/newbie/dwarf/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/cafe/
final_realms_fluffos_v1/lib/d/newbie/elf/chars/equip/
final_realms_fluffos_v1/lib/d/newbie/elf/items/armours/
final_realms_fluffos_v1/lib/d/newbie/elf/items/obj/
final_realms_fluffos_v1/lib/d/newbie/elf/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/quick_fix/
final_realms_fluffos_v1/lib/d/newbie/gnome/armour/
final_realms_fluffos_v1/lib/d/newbie/gnome/buildings/
final_realms_fluffos_v1/lib/d/newbie/gnome/items/
final_realms_fluffos_v1/lib/d/newbie/gnome/npcs/clones/
final_realms_fluffos_v1/lib/d/newbie/gnome/rooms/northrooms/
final_realms_fluffos_v1/lib/d/newbie/gnome/weapons/
final_realms_fluffos_v1/lib/d/newbie/goblin/armour/
final_realms_fluffos_v1/lib/d/newbie/goblin/items/
final_realms_fluffos_v1/lib/d/newbie/grads/log/
final_realms_fluffos_v1/lib/d/newbie/grads/npcs/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/cave1/
final_realms_fluffos_v1/lib/d/newbie/grads/temp/
final_realms_fluffos_v1/lib/d/newbie/guests/weapons/
final_realms_fluffos_v1/lib/d/newbie/half-elf/items/
final_realms_fluffos_v1/lib/d/newbie/half-elf/newroomss/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/castle/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/drows/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/savannah/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/secret/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/town/
final_realms_fluffos_v1/lib/d/newbie/halfling/
final_realms_fluffos_v1/lib/d/newbie/halfling/misc/
final_realms_fluffos_v1/lib/d/newbie/halfling/rooms/cave/
final_realms_fluffos_v1/lib/d/newbie/human/
final_realms_fluffos_v1/lib/d/newbie/human/armour/
final_realms_fluffos_v1/lib/d/newbie/human/monsters/
final_realms_fluffos_v1/lib/d/newbie/human/obj/
final_realms_fluffos_v1/lib/d/newbie/human/weapons/
final_realms_fluffos_v1/lib/d/newbie/lizard/armour/
final_realms_fluffos_v1/lib/d/newbie/lizard/items/
final_realms_fluffos_v1/lib/d/newbie/lizard/underwater/
final_realms_fluffos_v1/lib/d/newbie/lizard/weapons/
final_realms_fluffos_v1/lib/d/newbie/logs/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/rooms/
final_realms_fluffos_v1/lib/d/newbie/newelf/
final_realms_fluffos_v1/lib/d/newbie/newelf/chars/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/recopied/
final_realms_fluffos_v1/lib/d/newbie/newelf/obj/
final_realms_fluffos_v1/lib/d/newbie/newelf/quest_docs./
final_realms_fluffos_v1/lib/d/newbie/newken/
final_realms_fluffos_v1/lib/d/newbie/newken/chars/
final_realms_fluffos_v1/lib/d/newbie/newken/misc/
final_realms_fluffos_v1/lib/d/newbie/newken/npcs/
final_realms_fluffos_v1/lib/d/newbie/newken/obj/
final_realms_fluffos_v1/lib/d/newbie/newliz/
final_realms_fluffos_v1/lib/d/newbie/newliz/cave/
final_realms_fluffos_v1/lib/d/newbie/newliz/npcs/
final_realms_fluffos_v1/lib/d/newbie/orc/items/misc/
final_realms_fluffos_v1/lib/d/newbie/orc/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/orc/tower/
final_realms_fluffos_v1/lib/d/vehicle/
final_realms_fluffos_v1/lib/doc/
final_realms_fluffos_v1/lib/doc/driver/
final_realms_fluffos_v1/lib/doc/driver/concepts/
final_realms_fluffos_v1/lib/doc/driver/driver/
final_realms_fluffos_v1/lib/doc/driver/efuns/arrays/
final_realms_fluffos_v1/lib/doc/driver/efuns/bitstrings/
final_realms_fluffos_v1/lib/doc/driver/efuns/communication/
final_realms_fluffos_v1/lib/doc/driver/efuns/core/
final_realms_fluffos_v1/lib/doc/driver/efuns/debugging/
final_realms_fluffos_v1/lib/doc/driver/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/driver/efuns/interactive/
final_realms_fluffos_v1/lib/doc/driver/efuns/mappings/
final_realms_fluffos_v1/lib/doc/driver/efuns/objects/
final_realms_fluffos_v1/lib/doc/driver/efuns/security/
final_realms_fluffos_v1/lib/doc/driver/efuns/strings/
final_realms_fluffos_v1/lib/doc/driver/efuns/system/
final_realms_fluffos_v1/lib/doc/driver/efuns/types/
final_realms_fluffos_v1/lib/doc/driver/lpc/constructs/
final_realms_fluffos_v1/lib/doc/driver/lpc/types/
final_realms_fluffos_v1/lib/doc/driver/platforms/
final_realms_fluffos_v1/lib/doc/lpc/
final_realms_fluffos_v1/lib/doc/mail/
final_realms_fluffos_v1/lib/doc/man/
final_realms_fluffos_v1/lib/doc/man/html/
final_realms_fluffos_v1/lib/doc/man/html/applies/
final_realms_fluffos_v1/lib/doc/man/html/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/html/driver/
final_realms_fluffos_v1/lib/doc/man/html/efuns/
final_realms_fluffos_v1/lib/doc/man/html/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/html/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/html/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/html/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/html/efuns/general/
final_realms_fluffos_v1/lib/doc/man/html/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/
final_realms_fluffos_v1/lib/doc/man/local/applies/
final_realms_fluffos_v1/lib/doc/man/local/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/local/applies/master/
final_realms_fluffos_v1/lib/doc/man/local/concepts/
final_realms_fluffos_v1/lib/doc/man/local/defines/
final_realms_fluffos_v1/lib/doc/man/local/driver/
final_realms_fluffos_v1/lib/doc/man/local/efuns/
final_realms_fluffos_v1/lib/doc/man/local/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/local/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/local/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/local/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/local/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/local/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/local/efuns/general/
final_realms_fluffos_v1/lib/doc/man/local/efuns/interactive/
final_realms_fluffos_v1/lib/doc/man/local/efuns/internals/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/local/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/objects/
final_realms_fluffos_v1/lib/doc/man/local/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/efuns/sockets/
final_realms_fluffos_v1/lib/doc/man/local/efuns/strings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/system/
final_realms_fluffos_v1/lib/doc/man/local/historical/
final_realms_fluffos_v1/lib/doc/man/local/lfun/QC/
final_realms_fluffos_v1/lib/doc/man/local/lfun/events/
final_realms_fluffos_v1/lib/doc/man/local/lfun/monster/
final_realms_fluffos_v1/lib/doc/man/local/lfun/properties/
final_realms_fluffos_v1/lib/doc/man/local/lpc/
final_realms_fluffos_v1/lib/doc/man/local/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/local/lpc/types/
final_realms_fluffos_v1/lib/doc/man/local/standards/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/basic/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/intermediate/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/concepts/
final_realms_fluffos_v1/lib/doc/man/mudos/driver/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/general/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mixed/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/types/
final_realms_fluffos_v1/lib/doc/races/
final_realms_fluffos_v1/lib/doc/races/old_race/
final_realms_fluffos_v1/lib/global/virtual/
final_realms_fluffos_v1/lib/global/wiz_backup/
final_realms_fluffos_v1/lib/net/config/
final_realms_fluffos_v1/lib/net/daemon/chars/
final_realms_fluffos_v1/lib/net/inherit/
final_realms_fluffos_v1/lib/net/intermud3/
final_realms_fluffos_v1/lib/net/intermud3/cmds/
final_realms_fluffos_v1/lib/net/intermud3/save/
final_realms_fluffos_v1/lib/net/intermud3/services/
final_realms_fluffos_v1/lib/net/obj/
final_realms_fluffos_v1/lib/net/old/
final_realms_fluffos_v1/lib/net/old/intermud/
final_realms_fluffos_v1/lib/net/old/intermud/adm/
final_realms_fluffos_v1/lib/net/old/intermud/services/
final_realms_fluffos_v1/lib/net/old/intermud/udp/
final_realms_fluffos_v1/lib/net/virtual/
final_realms_fluffos_v1/lib/obj/b_day/
final_realms_fluffos_v1/lib/obj/chars/
final_realms_fluffos_v1/lib/obj/handlers/lists/
final_realms_fluffos_v1/lib/obj/handlers/useless/
final_realms_fluffos_v1/lib/obj/monsters/
final_realms_fluffos_v1/lib/obj/roomgen/
final_realms_fluffos_v1/lib/obj/soul/
final_realms_fluffos_v1/lib/obj/vegetation/
final_realms_fluffos_v1/lib/obj/weapons/oldsys/
final_realms_fluffos_v1/lib/open/
final_realms_fluffos_v1/lib/players/g/
final_realms_fluffos_v1/lib/releasefiles/d/heaven/
final_realms_fluffos_v1/lib/releasefiles/d/mudlib/
final_realms_fluffos_v1/lib/releasefiles/d/newbie/
final_realms_fluffos_v1/lib/releasefiles/doc/
final_realms_fluffos_v1/lib/releasefiles/players/g/
final_realms_fluffos_v1/lib/releasefiles/save/
final_realms_fluffos_v1/lib/releasefiles/save/environ/
final_realms_fluffos_v1/lib/releasefiles/save/roomgen/
final_realms_fluffos_v1/lib/releasefiles/secure/
final_realms_fluffos_v1/lib/releasefiles/w/
final_realms_fluffos_v1/lib/releasefiles/w/god/
final_realms_fluffos_v1/lib/room/
final_realms_fluffos_v1/lib/save/
final_realms_fluffos_v1/lib/save/environ/
final_realms_fluffos_v1/lib/save/roomgen/
final_realms_fluffos_v1/lib/scripts/
final_realms_fluffos_v1/lib/secure/crerem/
final_realms_fluffos_v1/lib/secure/dom/
final_realms_fluffos_v1/lib/secure/log/
final_realms_fluffos_v1/lib/secure/misc/
final_realms_fluffos_v1/lib/std/adnd/
final_realms_fluffos_v1/lib/std/commands/shadows/
final_realms_fluffos_v1/lib/std/creator/
final_realms_fluffos_v1/lib/std/curses/
final_realms_fluffos_v1/lib/std/curses/old_sys/
final_realms_fluffos_v1/lib/std/curses/shadows/
final_realms_fluffos_v1/lib/std/dom/
final_realms_fluffos_v1/lib/std/effects/
final_realms_fluffos_v1/lib/std/effects/healing/
final_realms_fluffos_v1/lib/std/effects/other/
final_realms_fluffos_v1/lib/std/effects/poisons/
final_realms_fluffos_v1/lib/std/environ/
final_realms_fluffos_v1/lib/std/guilds/
final_realms_fluffos_v1/lib/std/guilds/priests/samples/
final_realms_fluffos_v1/lib/std/guilds/wizards/
final_realms_fluffos_v1/lib/std/living/baldy/
final_realms_fluffos_v1/lib/std/living/divstuff/
final_realms_fluffos_v1/lib/std/paran/
final_realms_fluffos_v1/lib/std/poisons/
final_realms_fluffos_v1/lib/std/poisons/shadows/
final_realms_fluffos_v1/lib/std/poisons/weapons/
final_realms_fluffos_v1/lib/std/race_groups/
final_realms_fluffos_v1/lib/std/room/
final_realms_fluffos_v1/lib/std/room/old/
final_realms_fluffos_v1/lib/std/rooms/
final_realms_fluffos_v1/lib/std/shadows/
final_realms_fluffos_v1/lib/std/shadows/test_shad/
final_realms_fluffos_v1/lib/std/socket/
final_realms_fluffos_v1/lib/std/spells/
final_realms_fluffos_v1/lib/std/vaults/
final_realms_fluffos_v1/lib/tmp/
final_realms_fluffos_v1/lib/w/
final_realms_fluffos_v1/lib/w/god/
final_realms_fluffos_v1/old/
final_realms_fluffos_v1/win32/
/*
 * We are sent the line of the menu...
 * From this, we are supposed to figure out whats actually here...
 */
#include "gopher.h"

#define VOID_OB "/room/void"

#undef DEBUG

#ifdef DEBUG
#define TP(STR) tell_object(find_player("pinkfish"), STR)
#else
#define TP(STR)
#endif

inherit "/std/room";

mixed *my_menu,
      *junk,
      *my_junk;
string room_long, rabbit;
int search_room;
mapping blue,
        pending;

void setup() {
  blue = ([ ]);
  pending = ([ ]);
  my_menu = ({ });
  add_exit("up", "who_cares", "corridor");
  modify_exit("up", ({ "function", "do_up" }));
  add_exit("out", "/w/common", "corridor");
  modify_exit("out", ({ "function", "do_out" }));
  room_long = "";
} /* create() */

void init() {
  if (rabbit)
    write(long("", 0));
  ::init();
  if (blue[this_player()]) {
    this_player()->more_string(blue[this_player()]);
    map_delete(blue, this_player());
  }
/*
  for (i=0;i<sizeof(my_menu);i++)
    add_action("handle_item", (i+1)+"");
 */
  add_action("do_refresh", "refresh");
  add_action("do_jump", "gopher");
  add_action("do_show", "show");
} /* init() */

long() {
  object *obs;
  string *cont, str;
  int i, cols;

  if (this_player())
    cols = this_player()->query_cols();
  else
    cols = 78;
  return "You are in the gopher maze.\n"+sprintf("%-*#s", cols, room_long)+
         "\n'gopher <dest> [port]' to jump to another server, "+
           "and 'refresh'"+
           " to refresh the room.\n"+::long();
} /* query_long() */

void setup_room(mixed *junk, string arg) {
  set_short(junk[TEXT]);
  if (!arg)
    if (junk[NAME] == "1")
      GOPHER_CONTROL->add_connection("\t"+junk[MACHINE]+"\t"+
                                     junk[PORT], this_object());
    else
      GOPHER_CONTROL->add_connection(junk[NAME]+"\t"+junk[MACHINE]+"\t"+
                                     junk[PORT], this_object());
  if (arg || junk[TEXT] == "who") {
    search_room = 1;
    set_heart_beat(1);
  }
  my_junk = junk;
  set_long("Connecting.\n");
  GOPHERD->do_connect(MENU, junk[NAME], junk[MACHINE], junk[PORT],
                       "finish_lookup", arg);
} /* setup() */

mixed *query_my_junk() { return my_junk; }
mixed *query_my_menu() { return my_menu; }

void finish_lookup(mixed *junk, mixed *called) {
  int i, my_number, exit_no;
  string my_path, *bits, cont, ret;
  object *obs;

  if (!junk) {
    tell_room(this_object(), "Failed to connect.\n");
    return 0;
  }
  bits = explode(file_name(this_object()), "/");
  cont = implode(bits[0..sizeof(bits)-2], "/")+"/gopher_cont";
  tell_room(this_object(), "Connection completed.\n");
  ret = "";
  my_menu = junk;
  for (i=0;i<sizeof(junk);i++) {
    switch (junk[i][TYPE]) {
      case FILE :
        ret += sprintf("%2d: %s\n", i+1, junk[i][DATA][TEXT]);
        break;
      case MENU :
        ret += sprintf("%2d: %s/\n", i+1, junk[i][DATA][TEXT]);
        break;
      case SEARCH :
        ret += sprintf("%2d: %s <?>\n", i+1, junk[i][DATA][TEXT]);
        break;
    }
    add_exit((i+1)+"", "hmmmm", "corridor");
    modify_exit((i+1)+"", ({ "function", "handle_item", "obvious", 0 }));
  }
  room_long = ret;
  set_long("");
  rabbit = 1;
  (obs = all_inventory())->move(VOID_OB);
  obs->move(this_object());
  rabbit = 0;
} /* finish_lookup() */

void text_finish(string text, mixed *junk) {
  string tmp;
  int i;
  object *obs;

TP(sprintf("%O\n", junk));
  tmp = junk[0]+"\t"+junk[1];
  if (!pending[tmp]) {
    tell_room(this_object(), "Something weird.\n");
    return ;
  }
  TP(sprintf("BING?, %O", pending[tmp]));
  for (i=0;i<sizeof(pending[tmp]);i++) {
    blue[pending[tmp][i]] = text;
    map_delete(pending, pending[tmp][i]);
  }
  map_delete(pending, tmp);
  TP("Doing move...\n");
  (obs = all_inventory())->move(VOID_OB);
  obs->move(this_object());
} /* text_finish() */

int handle_item() {
  int num;
  object dest;
  mixed *tmp;
  string bip;

  sscanf(query_verb(), "%d", num);
  num--;
  if (pending[this_player()]) {
    notify_fail("You have a pending transaction.\n");
    return 0;
  }
  switch (my_menu[num][TYPE]) {
    case FILE :
      pending[this_player()] = 1;
      bip = my_menu[num][DATA][NAME]+"\t"+my_menu[num][DATA][PORT];
      if (!pending[bip]) {
        GOPHERD->do_connect(FILE, my_menu[num][DATA][NAME],
                                  my_menu[num][DATA][MACHINE],
                                  my_menu[num][DATA][PORT],
                                  "text_finish");
        pending[bip] = ({ this_player() });
      } else /* Someone is already getting it. */
        pending[bip] += ({ this_player() });
/* We dont actually want to move them... */
      notify_fail("Connecting....\n");
      return 0;
      break;
    case MENU :
      if (my_menu[num][DATA][NAME] == "1")
        my_menu[num][DATA][NAME] = "";
      if (!(dest = GOPHER_CONTROL->query_connection(my_menu[num][DATA][NAME]+
            "\t"+my_menu[num][DATA][MACHINE]+"\t"+my_menu[num][DATA][PORT]))) {
/* Need a new room... */
        dest = clone_object(GOPHER_ROOM);
        dest->setup_room(my_menu[num][DATA]);
      }
      modify_exit(query_verb(), ({ "dest", dest }));
      tmp = this_player()->query_property("gopher");
      if (!tmp)
        tmp = ({ });
      tmp = tmp - ({ 0 });
      this_player()->add_property("gopher", tmp+({ this_object() }));
      break;
    case SEARCH :
/* Now a search requires a room, but an unregistered one. */
      write("You need to give the magic incantation to pass this exit.\n: ");
      input_to("do_gopher_search", 0, num);
      notify_fail("");
      return 0;
  }
  return 1;
} /* handle_item() */

void do_gopher_search(string str, int num) {
  object dest;
  mixed *tmp;

  printf("In here.\n");
  dest = clone_object(GOPHER_ROOM);
  dest->setup_room(my_menu[num][DATA], str);
  tmp = this_player()->query_property("gopher");
  if (!tmp)
    tmp = ({ });
  tmp = tmp - ({ 0 });
  this_player()->add_property("gopher", tmp+({ this_object() }));
  modify_exit((num+1)+"", ({ "dest", dest }));
  this_player()->move_player("X", dest);
} /* do_search() */

int do_refresh(string str) {
  if (search_room && !str) {
    notify_fail("Syntax: refresh <text>\n");
    return 0;
  }
  if (search_room)
    setup_room(my_junk, str);
  else
    setup_room(my_junk, 0);
  write("Refreshing...\n");
  return 1;
} /* do_refresh() */

int do_up() {
  object dest, *tmp;
  int i;

  if (!(tmp = this_player()->query_property("gopher"))) {
    this_player()->remove_property("gopher");
    call_out("do_exit_command", 0, "out");
    notify_fail("");
    return 0;
  } else {
    tmp = tmp - ({ 0 });
    for (i=sizeof(tmp)-1;i>=0;i--)
      if (tmp[i]) break;
    if (i < 0) {
      this_player()->remove_property("gopher");
      call_out("do_exit_command", 0, "out");
      notify_fail("");
      return 0;
    } else {
      if (i)
        this_player()->add_property("gopher", tmp[0..i-1]);
      else
        this_player()->add_property("gopher", 0);
      dest = tmp[i];
    }
  }
  modify_exit("up", ({ "dest",  dest }));
  return 1;
} /* do_up() */

void heart_beat() {
  if (!sizeof(all_inventory()))
    dest_me();
} /* heart_beat() */

int do_jump(string str) {
  string host;
  int port;
  object dest;
  mixed *tmp;

  if (!str) {
    notify_fail("Syntax: "+query_verb()+" <site> [port]\n");
    return 0;
  }
  if (sscanf(str, "%s %d", host, port) != 2) {
    host = str;
    port = "70";
  }
  dest = GOPHER_CONTROL->query_connection("\t"+host+"\t"+port);
  if (!dest) {
    dest = clone_object(GOPHER_ROOM);
    dest->setup_room(({ "Root level of "+host, "", host, port+"" }));
  }
  tmp = this_player()->query_property("gopher");
  if (!tmp)
    tmp = ({ });
  this_player()->add_property("gopher", tmp+({ this_object() }));
  this_player()->move_player("X", dest);
  return 1;
} /* do_jump() */

/* Get me out of here! */
int do_out() {
  this_player()->remove_property("gopher");
  return 1;
} /* do_out() */

int do_show(string str) {
  int num;

  notify_fail("Syntax: show <num>\n");
  if (!str)
    return 0;
  if (sscanf(str, "%d", num) != 1 || num < 1 || num > sizeof(my_menu))
    return 0;
  num--;
  write("Text: "+my_menu[num][DATA][TEXT]+"\n");
  write("Name: "+my_menu[num][DATA][NAME]+"\n");
  write("Host: "+my_menu[num][DATA][MACHINE]+"\n");
  write("Port: "+my_menu[num][DATA][PORT]+"\n");
  return 1;
} /* do_who() */