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/
// Radix - Added wis_present call to 'cd' allowing 'cd here'
// or any other object, same as 'ed'
// December 15, 1995

//inherit "/std/basic/ls";
inherit "/global/le";
inherit "/global/wiz_backup/wiz_object_comm";
inherit "/global/player.c";
inherit "/global/wiz_backup/wiz_inter_comm";
inherit "/global/wiz_backup/wiz_info_comm";
inherit "/global/wiz_backup/wiz_object_comm";
inherit "/global/wiz_backup/wiz_communicate";

#define MASTER "/secure/master"

static mixed in_editor;

varargs object *wiz_present(string str, object onobj, int nogoout);
string desc_object(mixed o);
string desc_f_object(object o);

static void wiz_commands() {
    add_action("update","update");
    add_action("indent", "indent");
    /* This may not work: (baldrick) */
    wiz_object_comm::wiz_commands();
    wiz_info_comm::wiz_commands();
    wiz_communicate::wiz_commands();
} /* wiz_commands() */

/*
** commands in the app_commands will go to all players with
** level >= 20. This includes players who have opted to
** remain players rather than advancing to wizard. As such
** we must be careful in what we place here
*/

static void app_commands() {
    wiz_object_comm::app_commands();
    wiz_info_comm::app_commands();
    wiz_inter_comm::wiz_commands();
} /* app_commands() */

/* These commands go to ALL players. Note that master.c
** gives only limited read/write access to dirs anyway,
** so the apparent security problems are NOT a problem
*/

void all_commands() {
    add_action("what_dir","pwd");  
    //add_action("list_files","ls");
    add_action("change_dir","cd");
    add_action("edit","ed");
    add_action("le", "le");
    add_action("set_home_dir", "homedir");
    wiz_object_comm::all_commands();
    wiz_info_comm::all_commands();
} /* all_commands() */

static int do_update(object *ov) {
    string pname, dummy;
    int i, j;
    object *invent, rsv, env, dup, loaded;
    /* next three Hamlet's */
    object totell;
    string *load_junk;
    string itemname;
    object thing;

    if (this_player(1) != this_player()) return 0;

    // Easy way to preload something...
    "room/void"->bingle_bingle();

    rsv = find_object("room/void");  /* RSV = Room Slash Void */
    if (!rsv) { /* Die in horror */
    notify_fail("The void is lost!\n");
    return 0;
    }

    for (i = 0; i < sizeof(ov); i++) {
    if (!ov[i]) continue;
    env = environment(ov[i]);
    invent = all_inventory(ov[i]);

    // Added logging of "update <player>"  Radix, Dec 15, 1995
    if(interactive(ov[i]))
        log_file("MISC",this_player()->query_short()+" UPDATED "+
          ov[i]->query_short()+" : "+ctime(time())+"\n");

    for (j = 0; j < sizeof(invent); j++)
    {
        if(interactive(ov[i]) || interactive(invent[j]) )
        invent[j]->move(rsv);
        else invent[j]->dest_me(); // Taniwha 1995, so rooms stop filling when updated
    }

    pname = file_name(ov[i]);
    if (sscanf(pname, "%s#%d", pname, dummy) != 2) { /* a room ? */
        /* Next three Hamlet's */
        load_junk = "/global/auto_load"->create_update_auto_load(ov[i]);
        totell = environment(ov[i]);
        itemname = ov[i]->query_short();

        ov[i] -> dest_me();
        if (ov[i]) ov[i]->dwep();
        if (ov[i]) destruct(ov[i]);
        //            file_size("/secure/master");     Struck me as senseless.
        /* Uh, you just dested it.  obviously it's not there...
        if (!ov[i])
        ov[i] = find_object(pname);
        */
        catch(call_other(pname, "??"));
        ov[i] = find_object(pname);
    } else {
        loaded = find_object(pname);

        /* Next three Hamlet's */
        if (loaded) {
        load_junk = "/global/auto_load"->create_update_auto_load(loaded);
        totell = environment(loaded);
        itemname = loaded->query_short();
        }

        if (loaded) loaded->dest_me();
        if (loaded) loaded->dwep();
        if (loaded) destruct(loaded);

        /* These are Hamlet's too */
        catch(loaded = load_object(pname));
        if(loaded)
        loaded->move(totell);
        else { /* Damn thing didn't reload... Oops... */
        if(totell) {
            if(interactive(totell))
            if(strlen(itemname))
                tell_object(totell,"Oops.  Your "+itemname+" just "
                  "broke.\n");
            else
                tell_object(totell,"Oops.  Something you had just "
                  "broke.\n");
            thing = clone_object( "/obj/misc/iou" );
            thing->add_auto_string( load_junk );
            thing->move( totell );
        }
        }

        catch(dup = clone_object(pname));
        if (dup && ov[i]) {
        ov[i] -> dest_me();
        if (ov[i]) ov[i]->dwep();
        if (ov[i]) destruct(ov[i]);
        ov[i] = dup;
        }
    }

    if (!ov[i]) {
        if(totell) {
        if(interactive(totell))
            if(strlen(itemname))
            tell_object(totell,"Oops.  Your "+itemname+" just broke.\n");
            else
            tell_object(totell, "Oops.  Something you had just broke.\n");
        thing = clone_object( "/obj/misc/iou" );
        thing->add_auto_string( load_junk );
        thing->move( totell );
        }
        continue;
    }

    for (j = 0; j < sizeof(invent); j++)
        if (invent[j]) invent[j]->move(ov[i]);

    if (env) ov[i]->move(env);
    write("Updated " + desc_f_object(ov[i]) + ".\n");
    }
    return 1;
} /* do_update() */

int update(string str) {
    string tring, *filenames, err;
    object ob, *val, *obs;
    int loop;

    notify_fail("No such object.\n");
    tring = str;
    if (!str || str == "here") { 
    str = file_name(environment());
    sscanf(str, "%s#%d", str, loop);
    filenames = ({ "/" + str });
    str = "here";
    }
    else {
    filenames = get_cfiles(str);
    }
    if(sizeof(filenames) == 0) {
    val = wiz_present(tring, this_player());
    if(!sizeof(val)) {
        notify_fail("No matching objects/filenames\n");
        return 0;
    }
    return do_update(val);
    }
    obs = ({ });
    for(loop = 0; loop < sizeof(filenames); loop++) {
    str = filenames[loop];
    ob = find_object(str);
    if (!ob) {
        if(file_size(str) >= 0) {
        if (!(err = catch(str->bing_with_me())))
            write("Loaded " + str + "\n");
        else
            write("Failed to load "+str+", error: "+err+"\n");
        }
        else {
        val = wiz_present(tring, this_player());
        obs += val;
        }
    }
    else {
        obs += ({ ob });
    }
    }
    if (!obs)
    return 0;
    else
    return do_update(obs);
} /* update() */

static int edit(string str) {
    string *filenames, spam;
    object *things;
    int egg;

    if (this_player(1) != this_player()) return 0;

    if (!str) {
    in_editor = "(hidden)";
    ed("frog", "fini_editor");
    return 1;
    }
    /* dodgy idea, but allows 'ed here' or 'ed strawberry' */
    if (sizeof(things = wiz_present(str, this_player()))) {
    spam = file_name(things[0]);
    sscanf(spam, "%s#%d", spam, egg);
        if(spam[0..6] == "/global")
        filenames = get_files(str);
    else
    if (file_size(spam) < 0)
        filenames = ({ spam+".c" });
    else
        filenames = ({ spam });
    } else
    filenames = get_files(str);
    if (!sizeof(filenames)) {
    str = get_path(str);
    } else {
    if (sizeof(filenames) > 0) {
        str = filenames[0];
        if (sizeof(filenames) > 1) {
        int loop;

        loop = 0;
        while(loop < sizeof(filenames) && file_size(filenames[loop]) < 0)
            loop++;
        if(loop >= sizeof(filenames)) {
            write("No such file.\n");
            return 0;
        }
        else {
            str = filenames[loop];
        }
        write("Ambiguous, using : " + str + "\n");
        }
    }
    }
    if (file_size(str) == -2) {
    write("directory\n");
    return 1;
    }
    in_editor = str;
    if (!MASTER->valid_write(str, geteuid(), "frog"))
    write("[read only] ");
    ed(str, "fini_editor");
    return 1;
} /* edit() */

void set_in_editor(mixed fname) {
    int fsize = strlen(file_name(previous_object()));
    if(file_name(previous_object())[fsize-8..fsize-1] == "/cmds/ed")
    in_editor = fname;
}
mixed query_in_editor() { return in_editor; }

void fini_editor() {
    in_editor = 0;
} /* fini_editor() */

static int what_dir() {
    write(current_path+"\n");
    return 1;
} /* what_dir() */

// Radix - Added wis_present call to 'cd' allowing 'cd here'
// or any other object, same as 'ed'
// December 15, 1995
static int change_dir(string str) {
    string *filenames;
    object *obs = ({ });
    string tmp = 0;
    string *arr = ({ });

    if (this_player(1) != this_player()) return 0;

    if (!str)  {
    if(!home_dir) {
        notify_fail("No homedir.  Use homedir to set it.\n");
        return 0;
    }
    str = home_dir;
    }
    filenames = get_files(str);
    if(sizeof(filenames) > 1) {
    notify_fail("Ambiguous directory.\n");
    return 0;
    }
    if(!sizeof(filenames))
    {
    obs = wiz_present(str,this_player());
    if(!sizeof(obs))
    {
        notify_fail("No such directory.\n");
        return(0);
    }

    // Added 'cd <immortal>' changes your path to their path
    // Radix
    if(interactive(obs[0]) && obs[0]->query_creator())
        filenames = get_files(obs[0]->query_path());
    else
    {
        tmp = virtual_file_name(obs[0]);
        if(!stringp(tmp))
        {
        notify_fail("Error: Bad wiz_present call, cd failed.\n");
        return(0);
        }
        arr = explode(tmp,"/");
        str = implode(arr[0..sizeof(arr)-2],"/");
        filenames = get_files("/"+str);
    }

    // Unlikely a loaded object won't have a dir, but leave it
    // to a bastard to do such things...
    // Radix
    if(!sizeof(filenames))
    {
        notify_fail("No such directory.\n");
        return(0);
    }
    }
    str = filenames[0];
    if (file_size(str) != -2) 
    write("Bad directory : " + str + ".\n");
    else
    current_path = str;
    write(current_path+"\n");
    return 1;
} /* change_dir() */

string query_path() { return current_path; }

static int set_home_dir(string str) {
    if (this_player(1) != this_object()) return 0;
    if (str) home_dir = get_path(str);
    write("Home directory set to "+home_dir+".\n");
    return 1;
} /* set_home_dir() */

int query_ed_setup() { return ed_setup; }
void set_ed_setup(int i) { ed_setup = i; }

int review() {
    player::review();
    wiz_info_comm::review();
    return 1;
} /* review() */