merentha_fluffos_v2/
merentha_fluffos_v2/bin/
merentha_fluffos_v2/fluffos-2.9-ds2.03/
merentha_fluffos_v2/fluffos-2.9-ds2.03/ChangeLog.old/
merentha_fluffos_v2/fluffos-2.9-ds2.03/Win32/
merentha_fluffos_v2/fluffos-2.9-ds2.03/compat/
merentha_fluffos_v2/fluffos-2.9-ds2.03/compat/simuls/
merentha_fluffos_v2/fluffos-2.9-ds2.03/include/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/clone/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/command/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/data/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/etc/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/include/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/inherit/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/inherit/master/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/log/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/tests/compiler/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/tests/efuns/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/tests/operators/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/u/
merentha_fluffos_v2/fluffos-2.9-ds2.03/tmp/
merentha_fluffos_v2/fluffos-2.9-ds2.03/windows/
merentha_fluffos_v2/lib/cfg/
merentha_fluffos_v2/lib/cfg/races/
merentha_fluffos_v2/lib/cmds/abilities/
merentha_fluffos_v2/lib/cmds/actions/
merentha_fluffos_v2/lib/cmds/spells/
merentha_fluffos_v2/lib/daemon/include/
merentha_fluffos_v2/lib/daemon/services/
merentha_fluffos_v2/lib/doc/
merentha_fluffos_v2/lib/doc/building/
merentha_fluffos_v2/lib/doc/help/classes/
merentha_fluffos_v2/lib/doc/help/general/
merentha_fluffos_v2/lib/doc/help/races/
merentha_fluffos_v2/lib/doc/help/skills/
merentha_fluffos_v2/lib/doc/help/stats/
merentha_fluffos_v2/lib/doc/man/efuns/
merentha_fluffos_v2/lib/doc/man/lfuns/
merentha_fluffos_v2/lib/doc/news/
merentha_fluffos_v2/lib/doc/old/
merentha_fluffos_v2/lib/doc/old/concepts/
merentha_fluffos_v2/lib/doc/old/lpc/constructs/
merentha_fluffos_v2/lib/doc/old/lpc/types/
merentha_fluffos_v2/lib/domains/ROOMS/
merentha_fluffos_v2/lib/domains/obj/armour/
merentha_fluffos_v2/lib/domains/obj/monsters/
merentha_fluffos_v2/lib/domains/obj/other/
merentha_fluffos_v2/lib/domains/obj/weapons/
merentha_fluffos_v2/lib/realms/petrarch/
merentha_fluffos_v2/lib/save/daemons/
merentha_fluffos_v2/lib/save/rid/
merentha_fluffos_v2/lib/save/users/a/
merentha_fluffos_v2/lib/save/users/p/
merentha_fluffos_v2/lib/save/users/t/
merentha_fluffos_v2/lib/std/login/
merentha_fluffos_v2/lib/std/obj/
merentha_fluffos_v2/win32/
// Petrarch
// Merentha Lib 1.0
// <inventory>

string help() {
return "Syntax: inventory\n\n\
This command displays the inventory which you are carrying or which \
you are wearing/wielding.";
}

int command() {
    object *inv=all_inventory(this_player());
    mapping worn=([]),carried=([]);
    string *worn_items, *carried_items, *pic;
    string tmp;
    int i=sizeof(inv),j,w,c,p,x,px;
    int total, total_weight;

    if(member_array("left wing", this_player()->query_limbs())==-1) {
        pic=explode(center("\
    _    \n\
   / \\   \n\
   \\_/   \n\
   _|_   \n\
  /| |\\  \n\
 / | | \\ \n\
M  | |  M\n\
   |-|   \n\
   | |   \n\
   | |   \n\
  _| |_  ",13),"\n");
        px=12;
    } else { 
        pic=explode(center("\
       _       \n\
  __  / \\  __  \n\
 /  \\ \\ / /  \\ \n\
/    \\_|_/    \\\n\
|    /| |\\    |\n\
|   / | | \\   |\n\
|  M /| |\\ M  |\n\
| __/ |-| \\__ |\n\
|/    | |    \\|\n\
      | |      \n\
     _| |_     ",19),"\n");
        px=18;
    }
    while(i--) {
        tmp=inv[i]->query_short();
        if(!tmp) tmp=inv[i]->query_name();
        if(!tmp) continue;
        if(inv[i]->query_worn_by() || inv[i]->query_wielded_by()) {
            if(worn[tmp]) worn[tmp]=worn[tmp]+1;
            else worn[tmp]=1;
        } else {
            if(carried[tmp]) carried[tmp]=carried[tmp]+1;
            else carried[tmp]=1;
        }
        total++;
        total_weight+=inv[i]->query_mass();
    }

    i=this_player()->getenv("SCREEN");
    if(!i) i=75;
    i-=px;
    i-=4;
    i=i/2;
    x=i;

    j=sizeof(worn_items=keys(worn));
    while(j--)
        worn_items[j]=arrange_string(consolidate(worn[worn_items[j]], worn_items[j]),i-1);
    j=sizeof(carried_items=keys(carried));
    while(j--)
        carried_items[j]=arrange_string(consolidate(carried[carried_items[j]], carried_items[j]),i-1);

    i=sizeof(pic)-2;
    c=sizeof(carried_items);
    w=sizeof(worn_items);
    p=i;
    if(c>i) i=c;
    if(w>i) i=w;

    tmp="";
    j=-2;
    while(j<i) {
        if(j==-2) {
            tmp+=arrange_string("%^GREEN%^"+center("Carried Items",x),x-1);
            tmp+=arrange_string("%^ORANGE%^"+pic[0],px);
            tmp+=arrange_string("%^GREEN%^"+center("Worn Items",x),x-1);
            tmp+="\n";
            j++;
            continue;
        }
        if(j==-1) {
            tmp+=arrange_string("",x-1);
            tmp+=arrange_string("%^ORANGE%^"+pic[1],px);
            tmp+="\n";
            j++;
            continue;
        }
        tmp+="%^RED%^";
        if(j<c) tmp+=carried_items[j];
        else tmp+=arrange_string("",x-1);
        tmp+="%^ORANGE%^";
        if(j<p) tmp+=pic[j+2];
        else tmp+=arrange_string("",px);
        tmp+="%^RED%^";
        if(j<w) tmp+=worn_items[j];
        else tmp+=arrange_string("",x-1);
        tmp+="\n";
        j++;
    }

    tmp+=center("\nYou are carrying "+total+"/"+this_player()->query_max_items()+" items and "+this_player()->query_holding_mass()+"/"+this_player()->query_max_mass()+" weight",x*2+px);

    i=this_player()->getenv("SCREEN");
    this_player()->more(border(tmp, "inventory", (i?i:75)));
    return 1;
}