#include "boot.clh"

object DESCRIBED_OBJ
    parents ROOT_OBJ;

    str  name = "Generic Described Object";
    str  desc = "";

    verb	"l*ook ex*amine" = look_verb;
    verb	"@desc*ribe" : "as" = desc_verb;

    method init
	if (this == DESCRIBED_OBJ)
	    this.add_owner(WIZARD);
	else
	    pass();
	endif
    endmethod /* init */

    method match
	var	 word;

	if (!args[1])
	    return 0;
	elseif (args[1][1] == "#" && toobj(args[1]) == this)
	    return 1;
	endif
	for word in (explode(args[1]))
	    if (!match(name, word))
		return 0;
	    endif
	endfor
	return 1;
    endmethod /* match */

    method desc
	return desc;
    endmethod /* desc */

    method sdesc
	return ("You see " + name + " here.");
    endmethod /* sdesc */

    method desc_verb
	if (!this.match(args[2]))
	    return 1;
	elseif (!PERMS_OK)
	    player.tell("Permission denied.");
	else
	    desc = args[4];
	    player.tell("Description set.");
	endif
    endmethod /* desc_verb */

    method look_verb
	if (!this.match(args[2]))
	    return 1;
	endif
	this.look();
    endmethod /* look_verb */

    method look
	if (desc)
	    player.tell(desc);
	else
	    player.tell("You see nothing special.");
	endif
    endmethod /* look */
endobject			/* DESCRIBED_OBJ */