// Randor, 25-mar-98
// recinv - recursive inventory
#pragma strict_types
#include <standard.h>
#include <cmd.h>
inherit CMD_BASE;
inherit WIZ_CMD_BASE;
string result;
void setup(){
position = 1;
}
static void format_inv(object targ, int level) {
object *inv;
string s;
if(!sizeof(inv=all_inventory(targ))) return;
foreach (object ob in inv) {
s=desc_object(ob);
result += sprintf("%*s%s (%O)\n", level*3, "", s, ob);
format_inv(ob, level+1);
}
}
static int cmd(string str, object me) {
object targ;
object *tmp;
if (this_player(1) != me) return 0;
notify_fail("Usage: recinv <object>\n");
if (!str) return 0;
if(!sizeof(tmp = wiz_present(str, me)))
return 0;
targ=tmp[0];
result="Recursive inventory of "+desc_object(targ)+":\n";
format_inv(targ, 0);
return this_player()->more_string(result);
}