/* Do not remove the headers from this file! see /USAGE for more info. */

/*
** base_obj.c -- base for the object classes
**
** This is an object with the very most basic features.  It shouldn't be
** used directly.  Use OBJ (and its subclasses) or use add_item() in the
** M_ITEMS module (typically in a ROOM or NON_ROOM).
**
** 960121, Deathblade: created
*/

inherit M_GRAMMAR;
inherit __DIR__ "object/names";
inherit __DIR__ "object/description";
inherit __DIR__ "object/flags";
inherit __DIR__ "object/non_object";
inherit __DIR__ "object/vsupport";
inherit __DIR__ "object/attributes";

void create()
{
    names::create();
    flags::create();
}

//:FUNCTION stat_me
//return some debugging info about the state of the object
string stat_me() 
{
    return
	"Short: "+short()+"\n" +
	"IDs: "+implode(parse_command_id_list(),", ")+"\n" +
	"Plurals: "+implode(parse_command_plural_id_list(),", ")+"\n" +
	"Adjectives: "+implode(parse_command_adjectiv_id_list(),", ")+"\n" +
	"Long: \n"+long() + "\n";
}

/*
** Add some very basic functionality.  Heavier weight objects will most
** likely override these and supply "real" functionality.
*/

int is_visible()
{
    return 1;
}

//### explain this comment.
// Here on purpose.
varargs mixed call_hooks(mixed s ...)
{
}

/* need a set_light() for remove() */
void set_light(int x)
{
}
