/* -*- LPC -*- */
/*
* $Locker: $
* $Id: eat_edible.c,v 1.2 1998/02/20 05:55:47 pinkfish Exp $
* $Log: eat_edible.c,v $
* Revision 1.2 1998/02/20 05:55:47 pinkfish
* Fixed a runtime error and made it more ribust by using
* function points for the function calls.
*
* Revision 1.1 1998/01/06 04:39:52 ceres
* Initial revision
*
*/
/*
* The eat edible objects shadow.
*/
inherit "/std/effect_shadow";
protected void real_eat(object ob);
protected void do_eat_edible();
mixed move(mixed dest, string messin, string messout) {
int ret;
ret = player->move(dest, messin, messout);
if (ret == 0) {
call_out((: do_eat_edible :), 0);
}
return ret;
} /* move() */
protected void do_eat_edible() {
int i;
object *obs;
obs = all_inventory(player);
for (i=0;i<sizeof(obs);i++) {
if (obs[i]->query_edible()) {
call_out((: real_eat :), 1, obs[i]);
}
}
} /* do_eat_edible() */
protected void real_eat(object ob) {
if (ob && player) {
player->do_command("eat "+ob->query_name());
}
} /* real_eat() */
void event_enter(object ob, string mess, object from) {
player->event_enter(ob, mess, from);
if (ob->query_edible()) {
call_out("real_eat", 2, ob);
}
} /* event_enter() */