nightmare4_fluffos_v1/
nightmare4_fluffos_v1/bin/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/ChangeLog.old/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/Win32/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/compat/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/compat/simuls/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/include/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/clone/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/command/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/data/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/etc/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/include/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/inherit/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/inherit/master/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/log/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/single/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/single/tests/compiler/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/single/tests/efuns/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/single/tests/operators/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/u/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/tmp/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/windows/
nightmare4_fluffos_v1/lib/cfg/
nightmare4_fluffos_v1/lib/cmds/admins/
nightmare4_fluffos_v1/lib/cmds/common/
nightmare4_fluffos_v1/lib/cmds/creators/include/
nightmare4_fluffos_v1/lib/cmds/creators/include/SCCS/
nightmare4_fluffos_v1/lib/cmds/hm/
nightmare4_fluffos_v1/lib/daemon/services/
nightmare4_fluffos_v1/lib/doc/
nightmare4_fluffos_v1/lib/doc/faq/
nightmare4_fluffos_v1/lib/doc/help/classes/
nightmare4_fluffos_v1/lib/doc/help/creators/
nightmare4_fluffos_v1/lib/doc/help/hm/
nightmare4_fluffos_v1/lib/doc/help/players/
nightmare4_fluffos_v1/lib/doc/help/races/
nightmare4_fluffos_v1/lib/doc/help/religion/
nightmare4_fluffos_v1/lib/doc/mudlib/
nightmare4_fluffos_v1/lib/doc/mudlib/cfg/
nightmare4_fluffos_v1/lib/domains/Ylsrim/
nightmare4_fluffos_v1/lib/domains/Ylsrim/adm/
nightmare4_fluffos_v1/lib/domains/Ylsrim/armour/
nightmare4_fluffos_v1/lib/domains/Ylsrim/fish/
nightmare4_fluffos_v1/lib/domains/Ylsrim/meal/
nightmare4_fluffos_v1/lib/domains/Ylsrim/npc/
nightmare4_fluffos_v1/lib/domains/Ylsrim/virtual/
nightmare4_fluffos_v1/lib/domains/Ylsrim/weapon/
nightmare4_fluffos_v1/lib/domains/Ylsrim/xtra/
nightmare4_fluffos_v1/lib/lib/comp/
nightmare4_fluffos_v1/lib/lib/lvs/
nightmare4_fluffos_v1/lib/lib/std/
nightmare4_fluffos_v1/lib/lib/user/
nightmare4_fluffos_v1/lib/news/
nightmare4_fluffos_v1/lib/obj/
nightmare4_fluffos_v1/lib/obj/include/
nightmare4_fluffos_v1/lib/save/
nightmare4_fluffos_v1/lib/save/kills/a/
nightmare4_fluffos_v1/lib/save/kills/b/
nightmare4_fluffos_v1/lib/save/kills/f/
nightmare4_fluffos_v1/lib/save/kills/m/
nightmare4_fluffos_v1/lib/save/kills/q/
nightmare4_fluffos_v1/lib/save/kills/r/
nightmare4_fluffos_v1/lib/secure/cfg/
nightmare4_fluffos_v1/lib/secure/cfg/classes/
nightmare4_fluffos_v1/lib/secure/cfg/races/SCCS/
nightmare4_fluffos_v1/lib/secure/cmds/creators/include/
nightmare4_fluffos_v1/lib/secure/cmds/players/
nightmare4_fluffos_v1/lib/secure/cmds/players/include/
nightmare4_fluffos_v1/lib/secure/daemon/include/
nightmare4_fluffos_v1/lib/secure/lib/
nightmare4_fluffos_v1/lib/secure/lib/include/
nightmare4_fluffos_v1/lib/secure/lib/net/
nightmare4_fluffos_v1/lib/secure/lib/std/
nightmare4_fluffos_v1/lib/secure/obj/
nightmare4_fluffos_v1/lib/secure/obj/include/
nightmare4_fluffos_v1/lib/secure/save/
nightmare4_fluffos_v1/lib/secure/save/boards/
nightmare4_fluffos_v1/lib/secure/save/votes/
nightmare4_fluffos_v1/lib/spells/
nightmare4_fluffos_v1/lib/verbs/admins/include/
nightmare4_fluffos_v1/lib/verbs/common/
nightmare4_fluffos_v1/lib/verbs/common/include/
nightmare4_fluffos_v1/lib/verbs/creators/
nightmare4_fluffos_v1/lib/verbs/creators/include/
nightmare4_fluffos_v1/lib/verbs/players/include/SCCS/
nightmare4_fluffos_v1/lib/verbs/rooms/
nightmare4_fluffos_v1/lib/verbs/rooms/include/
nightmare4_fluffos_v1/lib/www/
nightmare4_fluffos_v1/old/
nightmare4_fluffos_v1/old/tools/
nightmare4_fluffos_v1/win32/
/*    /cmds/creator/scan.c
 *    from the Foundation II LPC Library
 *    scans an object
 *    created by Descartes of Borg 950516
 *    -fi flags added for Nightmare by Blitz 951208
 */
 
#include <lib.h>
 
#define OPT_E       (1 << 1)
#define OPT_D       (1 << 2)
#define OPT_I       (1 << 3)
#define OPT_F       (1 << 4)
 
inherit LIB_DAEMON;
 
string inventory(object ob, int level, int scan);
 
mixed cmd(string args) {
    object *inv;
    object ob;
    string tmp;
    int scan, i, maxi;
 
    if( args == "" || !args ) {
        ob = this_player();
        scan = 0;
    }
    else {
        while(args[0] == '-') {
            switch(args[1]) {
                case 'd': scan |= OPT_D; break;
                case 'e': scan |= OPT_E; break;
                case 'i': scan |= OPT_I; break;
                case 'f': scan |= OPT_F; break;
            }
            if( strlen(args) > 3 ) args = trim(args[2..]);
            else args = "";
        }
        if( args != "" ) ob = to_object(args);
        if( !ob ) ob = this_player();
    }
    if( scan & OPT_E ) ob = environment(ob);
    if( !ob ) return "No environment for requested object.";
    if( scan & OPT_D ) tmp = "Deep scanning " + identify(ob) + ":\n";
    else tmp = "Scanning " + identify(ob) + ":\n";
    for(i=0, maxi = sizeof(inv = all_inventory(ob)); i<maxi; i++)
      tmp += inventory(inv[i], 1, scan);
    this_player()->eventPage(explode(tmp, "\n"), "system");
    return 1;
}
 
string inventory(object ob, int level, int scan) {
    object *inv;
    string ret;
    int i, maxi;
 
    for(i = 1, ret = ""; i <= level; i++) ret += "\t";
    if( scan & OPT_I ) {
        string tmp;
        if( scan & OPT_F ) tmp = identify(ob) + "\n" + ret + " ";
        else tmp = "";
        tmp += sprintf("(%s) - Mass: %d  Value: %d  Class: %d",
                     capitalize((string)ob->GetKeyName()),
                     (int)ob->GetMass(), (int)ob->GetValue(),
                     (int)ob->GetClass() );
        if( ob->GetWorn() ) tmp += " (worn)";
        ret += tmp;
    }
    else ret += identify(ob);
    if( ( scan & OPT_D ) &&
        ( maxi = sizeof(inv = all_inventory(ob))) ) ret += ":\n";
    else ret += "\n";
    if( !( scan & OPT_D ) ) return ret;
    for(i=0; i<maxi; i++)
      ret += inventory(inv[i], level + 1, scan);
    return ret;
}
 
string GetHelp(string str) {
    return "Syntax: <scan (-e) (-d) (-i) (-f) ([object])>\n\n"
           "Scans the inventory of the object you name.  If you do "
           "not specify an object, then it gives you your inventory.  "
           "If you specify the -e option, the command does the "
           "environment of the object which is targeted.  If the -d "
           "option is specified, then a deep scan is done.  The -i "
           "option displays information about each object.  The -f "
           "option forces filenames to be displayed (default).\n\n"
           "See also: inventory, stat";
}