/** * This is an inheritable for a plate, including cutlery. You can put things * on it. You can also eat food directly from the plate. It was designed * for the pub_shop.c inheritable, for use with the meals that can be sold * there. * @author Lemming * @started 26/12/1999 */ inherit "/std/surface"; /** @ignore */ int do_eat( object *obs ) { object ob, *food; if( sizeof( obs ) ) { food = filter( obs, (: $1->query_edible() :) ); } else { add_failed_mess("There is nothing on $D.\n"); return 0; } if( !sizeof( food ) ) { if( sizeof( obs ) ) add_failed_mess("You can't eat $I from $D.\n", obs ); else add_failed_mess("There is nothing edible on $D.\n"); return 0; } // Use tell_object/room here because add_succeeded_mess's aren't always // printed in the correct order. tell_object( TP, "You start eating from "+the_short()+".\n"); tell_room( ENV(TP), TP->the_short()+" $V$0=starts,start$V$ eating from "+ the_short()+".\n", TP ); add_succeeded_mess(""); // Food items should give their own messages. foreach( ob in food ) ob->do_eat(); return 1; } /* do_eat() */ /** @ignore */ void init() { add_command("eat", "<indirect:object:direct-obs> {from|on} <direct:object:me>", (: do_eat($1) :) ); add_command("eat", "from <direct:object:me>", (: do_eat( INV(TO) ) :) ); } /* init() */ mapping query_static_auto_load() { if( base_name(TO) == __FILE__[0..<3] ) return int_query_static_auto_load(); return 0; } /* query_static_auto_load() */