/* handles the indeirection needed for living objects... */ #include "money.h" varargs int adjust_money(mixed i, string type) { object ob, p_o; int val; p_o = previous_object(); ob = present("Some Money For Me", this_object()); if (!ob) { ob = clone_object(MONEY_OBJECT); ob->move(this_object()); } val = (int)ob->query_value(); ob->adjust_money(i, type); val = (int)ob->query_value()-val; /* if (interactive(this_object())) add_worth(val, (string)"/secure/master"->creator_file(file_name(p_o))); */ } mixed *query_money_array() { object ob; ob = present("Some Money For Me", this_object()); if (!ob) { ob = clone_object(MONEY_OBJECT); ob->move(this_object()); } return (mixed *)ob->query_money_array(); } void set_money_array(mixed *arr) { object ob; ob = present("Some Money For Me", this_object()); if (!ob) { ob = clone_object(MONEY_OBJECT); ob->move(this_object()); } ob->set_money_array(arr); } int query_value() { object ob; ob = present("Some Money For Me", this_object()); if (!ob) { ob = clone_object(MONEY_OBJECT); ob->move(this_object()); } return (int)ob->query_value(); } int query_money(string type) { object ob; ob = present("Some Money For Me", this_object()); if (!ob) { ob = clone_object(MONEY_OBJECT); ob->move(this_object()); } return (int)ob->query_money(type); } int pay_money(mixed *m_array) { int i, j, val; mixed *m_a; object ob, p_o; p_o = previous_object(); ob = present("Some Money For Me", this_object()); if (!ob) { ob = clone_object(MONEY_OBJECT); ob->move(this_object()); } val = (int)ob->query_value(); for (i=0;i<sizeof(m_array);i+=2) { m_a = (mixed *)MONEY_HAND->make_payment(m_array[i], m_array[i+1], this_object()); for (j=0;j<sizeof(m_a[0]);j+=2) ob->adjust_money(-m_a[0][j+1], m_a[0][j]); for (j=0;j<sizeof(m_a[1]);j+=2) ob->adjust_money(m_a[1][j+1], m_a[1][j]); } val = (int)ob->query_value()-val; /* if (interactive(this_object())) add_worth(val, (string)"/secure/master"->creator_file(file_name(p_o))); */ }