inherit "std/object";
#include "pub.h"
int weight_per_bite;
string eat_object, eat_func;
void init() {
::init();
this_player()->add_command("eat", this_object());
}
int query_weight_per_bite() { return weight_per_bite; }
string query_eat_object() { return eat_object; }
string query_eat_func() { return eat_func; }
void set_weight_per_bite(int i) { weight_per_bite = i; }
void set_eat_object(string s) { eat_object = s; }
void set_eat_func(string s) { eat_func = s; }
void setup_eat(string eo, string ef) {
eat_object = eo;
eat_func = ef;
}
int do_eat(object *dests, string s1, string s2, string prep) {
if (sizeof(dests)) {
notify_fail("Eat "+prep+"???\n");
return 0;
}
if (weight <= 0) {
call_out("dest_me", 0);
return 1;
}
if (!weight_per_bite) {
call_out("dest_me", 0);
if (eat_func)
if (eat_object)
call_other(eat_object, eat_func, this_object());
else
call_other(this_object(), eat_func, this_object());
return 1;
}
environment()->add_weight(-weight_per_bite);
weight -= weight_per_bite;
if (eat_func)
if (eat_object)
call_other(eat_object, eat_func, this_object());
else
call_other(this_object(), eat_func, this_object());
if (weight <=0) {
call_out("dest_me", 0);
environment()->add_weight(-weight);
}
return 1;
}