#include <creator.h> #define WIZ WIZ_PRESENT inherit COMMAND_BASE; private string help() { return "Usage: inherits <object-id|filename>\n\n" "Use wiz_present syntax and/or filename to determine the " "inherit tree of a particular item.\n"; } /* help() */ private varargs string parse_inherit_tree( object ob, int level ) { string file, mess, *stuff; object newob; stuff = inherit_list(ob); if( !sizeof(stuff) ) return ""; mess = ""; foreach( file in stuff ) { if( level ) mess += sprintf("%*s", level * 2, ""); mess += file+"\n"; catch( file->force_load() ); if( newob = find_object(file) ) mess += parse_inherit_tree( newob, level+1 ); else mess += sprintf("%*sFAILED TO LOAD %s\n", ( level + 1 ) * 2, "", file ); } return mess; } /* parse_inherit_tree() */ int cmd( string str ) { string *filenames, info; object ob, *stuff; if( !str || str == "") return notify_fail(help()); if( sizeof( filenames = TP->get_cfiles(str) ) ) stuff = map( filenames, (: load_object($1) :) ) - ({ 0 }); else if( !sizeof( stuff = WIZ->wiz_present( str, TP ) ) ) return notify_fail("Can't find "+str+".\n"); info = ""; foreach( ob in stuff ) { info += "Inherit tree of "+file_name(ob)+" :-\n"; str = parse_inherit_tree(ob); if( !str || str == "") info += "No files inherited.\n"; else info += str; } TP->more_string( info, "Inherits"); return 1; } /* cmd() */