[an error occurred while processing this directive]
[<a href="index.shtml">Package Index</a></code> | <a href="index_std.shtml">Mudlib Index</a></code> | <a href="index_eff.shtml">Effect Index</a></code>]<br><h2>File /obj/food.c</h2>
<BR>
This is the main inheritable for food objects.  It allows you to
create food and drink.  Virtual files may also be coded if given
the *.food extention.  There are many examples of these virtual
food files in the /obj/food directory.  Food does the following
things.
<BR><BR>
  - It can be eaten or drunk.
<BR>
  - Food can be changed from solid to liquid with set_liquid(),
and changed from liquid to solid with reset_liquid().
<BR>
  - The weight of each bite can be set with set_weight_per_bite().
<BR>
  - Effects can be added to the player when they are splashed with the food,
get food rubbed on them, or get food applied to them with
add_external_effect.
<BR>
  - Splashing, applying, and rubbing can be pk-checked with
set_external_pk_check()
<BR>
  - Splashing can be activated with set_splashable()
<BR>
  - Splashing can be deactivated with unset_splashable()
<BR>
  - Applying can be activated with set_applicable()
<BR>
  - Applying can be deactivated with unset_applicable()
<BR>
  - Effects can be added to the player when they consume the food
with add_eat_effect().
<BR>
  - Functions can be added to be carried out when the food is
consumed with add_eat_func().  This function can be stored
on another object if the set_eat_object() is used.
<BR>
  - An eat message can be set with set_eat_mess().
<BR>
  - Food can be cut up into pieces with sharp weapons.
<BR>
  - The description of the new 'pieces' can be set using
set_piece_description(), set_piece_short(), set_piece_plural(),
and set_piece_substance().
<BR>
  - Non-liquid food decays and will eventually crumble to dust.
<BR>
  - The decay speed can be set with set_decay_speed().
<BR>
  - Food can be 'pickled' to prevent decay using do_cure().
<h2>Inherits</h2>
This class inherits the following classes /obj/cont_medium.c<h2>Includes</h2>
This class includes the following files /include/volumes.h, /include/weapon.h, /include/state_change.h, /include/bits_controller.h, /include/move_failures.h and /include/drinks.h<h2>Class Index</h2>
<ul><li><a href="#class_eat_function">eat_function</a>
<br/>
This class contains a function to call.
</ul><h2>Method index</h2>
<ul>
<li><a href="#add_eat_effect">add_eat_effect</a>(mixed, int)<br/>
This adds an eat effect to the food.
<li><a href="#add_eat_function">add_eat_function</a>(mixed, string, mixed * args)<br/>
This sets up a function to be called when the object is eaten.
<li><a href="#add_external_effect">add_external_effect</a>(mixed, int)<br/>
This adds an external effect to the food.
<li><a href="#check_for_container">check_for_container</a>()<br/>
This checks the outside of us for a container and then destroys ourselves if
it is not a container.
<li><a href="#check_sharp">check_sharp</a>(object)<br/>
This checks to see if a weapon is sharp.
<li><a href="#consume">consume</a>(object, int, string)<br/>
This consumes some of the food.
<li><a href="#do_apply">do_apply</a>(object *)<br/>
This handles applying things

<li><a href="#do_cure">do_cure</a>()<br/>
This is called by the pickling stick.
<li><a href="#do_cut">do_cut</a>(int)<br/>
This cuts the food up into bits.
<li><a href="#do_drink">do_drink</a>()<br/>
This gives the appropriate message for drinking things.
<li><a href="#do_drop">do_drop</a>()<li><a href="#do_dry">do_dry</a>()<br/>
This method dries the food.
<li><a href="#do_eat">do_eat</a>(int, object)<br/>
This is the eat command call.
<li><a href="#do_mince">do_mince</a>()<li><a href="#do_quaff">do_quaff</a>()<br/>
This gives the appropriate message for quaffing things.
<li><a href="#do_splash">do_splash</a>(object *)<li><a href="#mince_up">mince_up</a>(int)<br/>
This minces the food item, using the state changer.
<li><a href="#query_applicable">query_applicable</a>(object, object)<br/>
This queries applicability of the food.
<li><a href="#query_bites_gone">query_bites_gone</a>()<br/>
This returns the number of bites that have been taken out of the food object.
<li><a href="#query_cured">query_cured</a>()<br/>
This returns the cured state of the bit.
<li><a href="#query_decay_divisor">query_decay_divisor</a>()<br/>This tells us the current divisor used to determine decay.
<li><a href="#query_decay_level">query_decay_level</a>()<br/>
This returns the level of the decay.
<li><a href="#query_decay_speed">query_decay_speed</a>()<br/>
This returns the decay speed.
<li><a href="#query_decays">query_decays</a>()<br/>
This query tells us whether the food decays.
<li><a href="#query_dried">query_dried</a>()<br/>
This returns the dried state of the bit.
<li><a href="#query_eat_effects">query_eat_effects</a>()<br/>
The eat effects of the food.
<li><a href="#query_eat_functions">query_eat_functions</a>()<br/>
This returns the set of functions to be called when this object is eaten.
<li><a href="#query_eat_mess">query_eat_mess</a>()<br/>
This returns the eat message of the object.
<li><a href="#query_edible">query_edible</a>()<br/>
This tells us if the food is edible (ie.
<li><a href="#query_external_effects">query_external_effects</a>()<br/>
The external (splash, apply, rub) effects of the food.
<li><a href="#query_food_object">query_food_object</a>()<br/>
This method returns 1 if the item is a food object.
<li><a href="#query_fraction_cut">query_fraction_cut</a>()<br/>
This returns the fraction of the piece.
<li><a href="#query_in_pieces">query_in_pieces</a>()<br/>
If the food has been cut up (using the 'cut' command) then this will return
true.
<li><a href="#query_liquid">query_liquid</a>()<br/>
This function returns one if the food is a liquid.
<li><a href="#query_long_decay_level">query_long_decay_level</a>()<br/>
This method returns the decay level for the object as a string,
it is used in the long() function.
<li><a href="#query_long_eat_level">query_long_eat_level</a>()<br/>
This method returns how much of the item has been nibbled on.
<li><a href="#query_original_weight">query_original_weight</a>()<br/>
This function returns the weight of the original item, not counting bites
taken or cut into pieces.
<li><a href="#query_piece_description">query_piece_description</a>()<br/>
This returns the long description of the food object when it is cut up into
pieces.
<li><a href="#query_piece_plural">query_piece_plural</a>()<li><a href="#query_piece_short">query_piece_short</a>()<li><a href="#query_piece_substance">query_piece_substance</a>()<li><a href="#query_preserved">query_preserved</a>()<br/>
This tells us how the item is preserved.
<li><a href="#query_rotten">query_rotten</a>()<br/>
This tells us if the food has started to rot
<li><a href="#query_short_rotten_adjective">query_short_rotten_adjective</a>()<br/>
This method returns the current rotten adjective that's used
in the short description for decaying objects.
<li><a href="#query_splashable">query_splashable</a>(object, object)<br/>
This queries splashability of the food.
<li><a href="#query_substance">query_substance</a>(int, int)<li><a href="#query_true_liquid">query_true_liquid</a>()<br/>
This function returns one if the food is a liquid.
<li><a href="#query_weight_per_bite">query_weight_per_bite</a>()<br/>
This sets the weight of each bite of the food object.
<li><a href="#remove_eat_effect">remove_eat_effect</a>(string)<br/>
This removes the eat effect of the given name.
<li><a href="#remove_eat_function">remove_eat_function</a>(mixed, string)<br/>
This removes an eat function from the set of eat functions.
<li><a href="#remove_external_effect">remove_external_effect</a>(string)<br/>
This removes the external effect of the given name.
<li><a href="#reset_liquid">reset_liquid</a>()<br/>
This changes the food object into a solid.
<li><a href="#set_applicable">set_applicable</a>()<br/>
This sets it so the food can be applied.
<li><a href="#set_bites_gone">set_bites_gone</a>(mixed)<br/>
This sets the number of bites gone.
<li><a href="#set_decay_level">set_decay_level</a>(int)<br/>
This sets the decay level.
<li><a href="#set_decay_speed">set_decay_speed</a>(int)<br/>
This sets the speed at which a food object decays.
<li><a href="#set_eat_effects">set_eat_effects</a>(mapping)<br/>
This sets all the eat effects.
<li><a href="#set_eat_mess">set_eat_mess</a>(mixed)<br/>
The eat mess should be treated exactly the same as a add_succeeded_mess(), as
it is processed later as add_succeeded_mess( eat_mess, ({ }) );
<li><a href="#set_external_effects">set_external_effects</a>(mapping)<br/>
This sets all the external effects.
<li><a href="#set_external_pk_check">set_external_pk_check</a>()<br/>
This makes the external effects pk checked.
<li><a href="#set_fraction_cut">set_fraction_cut</a>(int)<br/>
This sets how many pieces the food has been cut into.
<li><a href="#set_inedible">set_inedible</a>(int)<br/>
This makes the food inedible.
<li><a href="#set_liquid">set_liquid</a>()<br/>
This changes the food object into a liquid.
<li><a href="#set_piece_description">set_piece_description</a>(string)<br/>
This sets the long description of the food when it is has 'cut' into pieces.
<li><a href="#set_piece_plural">set_piece_plural</a>(string)<br/>
This plural description used for the pieces.
<li><a href="#set_piece_short">set_piece_short</a>(string)<br/>
This is the description used in the short for the pieces.
<li><a href="#set_piece_substance">set_piece_substance</a>(string)<br/>
This sets a new description for what there are pieces of.
<li><a href="#set_splashable">set_splashable</a>()<br/>
This sets it so the food can be splashed.
<li><a href="#set_weight_per_bite">set_weight_per_bite</a>(mixed)<br/>
This sets weight of each bite of the food object.
<li><a href="#setup_eat_piece_messages">setup_eat_piece_messages</a>(mixed, mixed, mixed, mixed)<br/>
This sets up the eat messages for pieces and stuff.
<li><a href="#slice_up">slice_up</a>(int, int)<br/>
This cuts the food item up into pieces, and returns the bits.
<li><a href="#unset_applicable">unset_applicable</a>()<br/>
This sets it so the food cannot be applied.
<li><a href="#unset_external_pk_check">unset_external_pk_check</a>()<br/>
This makes the external effects not pk checked.
<li><a href="#unset_splashable">unset_splashable</a>()<br/>
This sets it so the food cannot be splashed.
</ul>
<h2>Public Functions</h2>
These are functions that everyone can access.<p>
<dl>
<dt class="autodocfuncname"><a name="add_eat_effect">
add_eat_effect</a><pre class="autodocfuncdef">
int add_eat_effect(mixed word,
                   int number)
</pre><dd><br />
This adds an eat effect to the food.  This will be added to the player or NPC
when the food is eaten.
<p>
The effect is added with a number as the argument.  The number is based on
the amount which is eaten (in weight units), and usually represents the
strength of the effect.
If the object is continuous, the weight is calculated from the amount and
weight_unit array...
<p>
<br>
<code>
eff_num = ( amount * number * weight_unit[0] ) / weight_unit[1]
</code>
<p>
...where the number is passed into the add_eat_effect() function.
If the effect already exists, then the number is added onto the existing
number.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
word - The file name of the effect to add<br />
number - The number to set to the effect to<br />
<br />
<dd><b>Returns:</b>
<br />The current value of the effect in the mapping
<br /><br />
<dd><b>See also:</b>
<br /><a href="obj.cont_medium.c.shtml#set_weight_unit">/obj/cont_medium->set_weight_unit()</a> and <a href="#remove_eat_effect">remove_eat_effect()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="add_eat_function">
add_eat_function</a><pre class="autodocfuncdef">
varargs void add_eat_function(mixed ob,
                              string func,
                              mixed * args ...)
</pre><dd><br />
This sets up a function to be called when the object is eaten.
<p>
The function will be called with the object being eaten, the person eating
the object and any extra arguments specified by add_eat_function().
<p>
Note that eat functions are saved over logout, so adding this_object() as
the object to call the function on may not work as you might expect.
Instead, use base_name( this_object() ) and all will be well.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
ob - The object to call the function on (see caveat below)<br />
func - The function to call on the object<br />
args - (optional) Any extra args to be passed to the function<br />
<br />
<dd><b>Example:</b>
<br/><pre>void create_food() {
  object food;
  food = clone_object("/obj/food/apple.food");
  food->add_eat_function( base_name( this_object() ), "eat_apple", 5 );
} /* create_food() */

void eat_apple( object food, object eater, int val ) {
  /* Do something wonderful! */
} /* eat_apple() */
</pre><br /></dl>

<dt class="autodocfuncname"><a name="add_external_effect">
add_external_effect</a><pre class="autodocfuncdef">
int add_external_effect(mixed word,
                        int number)
</pre><dd><br />
This adds an external effect to the food.  This will be added to the player
or NPC when the liquid is splashed, applied, or rubbed on them.
<p>
The effect is added with a number as the argument.  The number is based on
the amount which is splashed (in weight units), and usually represents the
strength of the effect.
If the object is continuous, the weight is calculated from the amount and
weight_unit array...
<p>
<br>
<code>
eff_num = ( amount * number * weight_unit[0] ) / weight_unit[1]
</code>
<p>
...where the number is passed into the add_external_effect() function.
If the effect already exists, then the number is added onto the existing
number.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
word - The file name of the effect to add.<br />
number - The number to set to the effect to.<br />
<br />
<dd><b>Returns:</b>
<br />The current value of the effect in the mapping
<br /><br />
<dd><b>See also:</b>
<br /><a href="obj.cont_medium.c.shtml#set_weight_unit">/obj/cont_medium->set_weight_unit()</a>, <a href="#set_splashable">set_splashable()</a>, <a href="#unset_splashable">unset_splashable()</a>, <a href="#set_applicable">set_applicable()</a>, unset_applicable.c, <a href="#remove_external_effect">remove_external_effect()</a> and <a href="#set_external_pk_check">set_external_pk_check()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="check_for_container">
check_for_container</a><pre class="autodocfuncdef">
int check_for_container()
</pre><dd><br />
This checks the outside of us for a container and then destroys ourselves if
it is not a container.
<br />

<dt class="autodocfuncname"><a name="check_sharp">
check_sharp</a><pre class="autodocfuncdef">
int check_sharp(object weapon)
</pre><dd><br />
This checks to see if a weapon is sharp.  This is used later to determine
whether an object can be cut up with the weapon or not.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
weapon - The weapon to check to see if it is sharp<br />
<br />
<dd><b>Returns:</b>
<br />Return 1 if it is sharp, or 0 otherwise
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="consume">
consume</a><pre class="autodocfuncdef">
varargs void consume(object consumer,
                     int amount,
                     string type)
</pre><dd><br />
This consumes some of the food.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
consumer - The person doing the consumption<br />
amount - The amount being consumed<br />
type - Use "splash" or "apply" or "external" to use external effects,
anything else for eat effects.
<br />
<br />
<br /></dl>

<dt class="autodocfuncname"><a name="do_apply">
do_apply</a><pre class="autodocfuncdef">
int do_apply(object * things)
</pre><dd><br />
This handles applying things
<br />
<br /><dl>
<dd><b>Returns:</b>
<br />Return 1 if it succeeded, or return 0 if it failed.
<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_applicable">set_applicable()</a> and consume(*).c<br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_cure">
do_cure</a><pre class="autodocfuncdef">
int do_cure()
</pre><dd><br />
This is called by the pickling stick.  It stops the food object decaying.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />returns 1 for suceess and 0 for failure
<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_decay_speed">set_decay_speed()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_cut">
do_cut</a><pre class="autodocfuncdef">
varargs int do_cut(int num_pieces)
</pre><dd><br />
This cuts the food up into bits.  This is the command called with
add_command() and does the actual cutting up into bits.  If the num_pieces
parameter is undefined, the food is cut in half.  If the food is continuous,
the cutting is handled by the state_change handler (all continuous objects
must be cut this way).<br />
<br /><dl>
<dd><b>Parameters:</b><br />
num_pieces - The number of pieces to cut the food into.<br />
<br />
<dd><b>Returns:</b>
<br />1 if it succeeded, 0 if not.
<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_piece_description">set_piece_description()</a>, <a href="#query_in_pieces">query_in_pieces()</a>, <a href="#query_piece_short">query_piece_short()</a>, <a href="#query_piece_plural">query_piece_plural()</a> and <a href="#query_piece_substance">query_piece_substance()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_drink">
do_drink</a><pre class="autodocfuncdef">
int do_drink()
</pre><dd><br />
This gives the appropriate message for drinking things.
<br />
<br /><dl>
<dd><b>Returns:</b>
<br />Return 1 if it succeeded, or return 0 if it failed.
<br /><br />
<dd><b>See also:</b>
<br /><a href="#do_eat">do_eat()</a>, consume(*).c and <a href="#set_liquid">set_liquid()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_drop">
do_drop</a><pre class="autodocfuncdef">
int do_drop()
</pre>
<dt class="autodocfuncname"><a name="do_dry">
do_dry</a><pre class="autodocfuncdef">
int do_dry()
</pre><dd><br />
This method dries the food.  Dried food no longer decays.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />returns 1 for suceess and 0 for failure
<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_decay_speed">set_decay_speed()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_eat">
do_eat</a><pre class="autodocfuncdef">
varargs int do_eat(int no_mess,
                   object ob)
</pre><dd><br />
This is the eat command call.  This is setup with add_command()
and does the actual eating.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
no_mess - don't use success messages<br />
ob - The object to eat.  Is either this_object() or a proxy object based
on this_object()<br />
<br />
<dd><b>Returns:</b>
<br />Return 1 on success, 2 on success + last bit eaten and return 0 on failure.<br /><br />
<dd><b>See also:</b>
<br /><a href="global.new_parse.c.shtml#add_command">/global/new_parse->add_command()</a>, <a href="global.new_parse.c.shtml#add_succeeded_mess">/global/new_parse->add_succeeded_mess()</a> and <a href="#set_eat_mess">set_eat_mess()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_mince">
do_mince</a><pre class="autodocfuncdef">
int do_mince()
</pre>
<dt class="autodocfuncname"><a name="do_quaff">
do_quaff</a><pre class="autodocfuncdef">
int do_quaff()
</pre><dd><br />
This gives the appropriate message for quaffing things. Its
rather like drinking but a lot of it gets splashed on you.
<br />
<br /><dl>
<dd><b>Returns:</b>
<br />Return 1 if it succeeded, or return 0 if it failed.
<br /><br />
<dd><b>See also:</b>
<br /><a href="#do_eat">do_eat()</a>, consume(*).c and <a href="#set_liquid">set_liquid()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_splash">
do_splash</a><pre class="autodocfuncdef">
int do_splash(object * things)
</pre>
<dt class="autodocfuncname"><a name="mince_up">
mince_up</a><pre class="autodocfuncdef">
varargs object mince_up(int messages)
</pre><dd><br />
This minces the food item, using the state changer.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
messages - 1 if succeeded/failed messages should be added to
this_player() (only used internally)<br />
<br />
<dd><b>Returns:</b>
<br />The transformed object
<br /><br />
<dd><b>See also:</b>
<br /><a href="#do_cut">do_cut()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_applicable">
query_applicable</a><pre class="autodocfuncdef">
int query_applicable(object applier,
                     object appliee)
</pre><dd><br />
This queries applicability of the food. (rubbing on someone) Note that the
food can only be applied when set_applicable() has been called<br />
<br /><dl>
<dd><b>Parameters:</b><br />
applier - Who applies it<br />
appliee - Who it is applied to<br />
<br />
<dd><b>Returns:</b>
<br />1 if it can be applied, 0 if it can't<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_applicable">set_applicable()</a>, <a href="#unset_applicable">unset_applicable()</a> and <a href="#set_external_pk_check">set_external_pk_check()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_bites_gone">
query_bites_gone</a><pre class="autodocfuncdef">
float query_bites_gone()
</pre><dd><br />
This returns the number of bites that have been taken out of the food object.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />The number of bites which have been taken from the object<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_bites_gone">set_bites_gone()</a> and <a href="#set_weight_per_bite">set_weight_per_bite()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_cured">
query_cured</a><pre class="autodocfuncdef">
int query_cured()
</pre><dd><br />
This returns the cured state of the bit.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />1 if it is cured, 0 if not
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_decay_divisor">
query_decay_divisor</a><pre class="autodocfuncdef">
float query_decay_divisor()
</pre><dd><br />This tells us the current divisor used to determine decay.  This can
 be modified with set_decay_speed.
<br />
<br /><dl>
<dd><b>Returns:</b>
<br />float the divisor<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_decay_speed">set_decay_speed()</a>, <a href="#query_decay_speed">query_decay_speed()</a>, <a href="#set_decay_level">set_decay_level()</a> and <a href="#query_decay_level">query_decay_level()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_decay_level">
query_decay_level</a><pre class="autodocfuncdef">
int query_decay_level()
</pre><dd><br />
This returns the level of the decay.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />The level of decay
<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_decay_speed">set_decay_speed()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_decay_speed">
query_decay_speed</a><pre class="autodocfuncdef">
int query_decay_speed()
</pre><dd><br />
This returns the decay speed.  If this is 0 then the object is not decaying.
This is the length of time it takes for the whole object to decay.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />The decay speed
<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_decay_speed">set_decay_speed()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_decays">
query_decays</a><pre class="autodocfuncdef">
int query_decays()
</pre><dd><br />
This query tells us whether the food decays.  All objects which decay should
have this function on them.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />Return 1 if the object decays<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_decay_speed">set_decay_speed()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_dried">
query_dried</a><pre class="autodocfuncdef">
int query_dried()
</pre><dd><br />
This returns the dried state of the bit.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />1 if it is dried, 0 if not
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_eat_effects">
query_eat_effects</a><pre class="autodocfuncdef">
mapping query_eat_effects()
</pre><dd><br />
The eat effects of the food.  The mapping contains a set of strings (the
effect) and a number associated with the effect.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />A mapping containing the eat effects
<br /><br />
<dd><b>See also:</b>
<br /><a href="#add_eat_effect">add_eat_effect()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_eat_functions">
query_eat_functions</a><pre class="autodocfuncdef">
class eat_function * query_eat_functions()
</pre><dd><br />
This returns the set of functions to be called when this object is eaten.
Each class consists of the object to call a function on, the function to
call, and any extra arguments that should be passed to the function.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />The set of eat functions on this object
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_eat_mess">
query_eat_mess</a><pre class="autodocfuncdef">
mixed query_eat_mess()
</pre><dd><br />
This returns the eat message of the object.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />The eat message
<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_eat_object">set_eat_object()</a>, <a href="#set_eat_func">set_eat_func()</a> and <a href="#set_eat_mess">set_eat_mess()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_edible">
query_edible</a><pre class="autodocfuncdef">
int query_edible()
</pre><dd><br />
This tells us if the food is edible (ie. can be consumed using 'eat' instead
of 'drink'.  If it is edible then it is not a liquid.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />Return 1 if the food is a liquid, and return 0 if it is not or is
inedible.<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_liquid">set_liquid()</a> and <a href="#query_liquid">query_liquid()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_external_effects">
query_external_effects</a><pre class="autodocfuncdef">
mapping query_external_effects()
</pre><dd><br />
The external (splash, apply, rub) effects of the food.  The mapping contains
a set of strings (the effect) and a number associated with the effect.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />A mapping containing the external effects
<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_applicable">set_applicable()</a> and <a href="#set_splashable">set_splashable()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_food_object">
query_food_object</a><pre class="autodocfuncdef">
int query_food_object()
</pre><dd><br />
This method returns 1 if the item is a food object.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />1 when it is a food object
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_fraction_cut">
query_fraction_cut</a><pre class="autodocfuncdef">
int query_fraction_cut()
</pre><dd><br />
This returns the fraction of the piece.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />The fraction cut.
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_in_pieces">
query_in_pieces</a><pre class="autodocfuncdef">
int query_in_pieces()
</pre><dd><br />
If the food has been cut up (using the 'cut' command) then this will return
true.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />Return 1 if it is in pieces, and return 0 otherwise
<br /><br />
<dd><b>See also:</b>
<br /><a href="#do_cut">do_cut()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_liquid">
query_liquid</a><pre class="autodocfuncdef">
int query_liquid()
</pre><dd><br />
This function returns one if the food is a liquid.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />Return 1 if the food is a liquid, and return 0 if it is not.
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_long_decay_level">
query_long_decay_level</a><pre class="autodocfuncdef">
string query_long_decay_level()
</pre><dd><br />
This method returns the decay level for the object as a string,
it is used in the long() function.
<br />

<dt class="autodocfuncname"><a name="query_long_eat_level">
query_long_eat_level</a><pre class="autodocfuncdef">
string query_long_eat_level()
</pre><dd><br />
This method returns how much of the item has been nibbled on.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />a string used in long().
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_original_weight">
query_original_weight</a><pre class="autodocfuncdef">
float query_original_weight()
</pre><dd><br />
This function returns the weight of the original item, not counting bites
taken or cut into pieces.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />The original weight
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_piece_description">
query_piece_description</a><pre class="autodocfuncdef">
string query_piece_description()
</pre><dd><br />
This returns the long description of the food object when it is cut up into
pieces.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />A string of text which is the piece description
<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_piece_description">set_piece_description()</a> and <a href="#query_in_pieces">query_in_pieces()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_piece_plural">
query_piece_plural</a><pre class="autodocfuncdef">
string query_piece_plural()
</pre>
<dt class="autodocfuncname"><a name="query_piece_short">
query_piece_short</a><pre class="autodocfuncdef">
string query_piece_short()
</pre>
<dt class="autodocfuncname"><a name="query_piece_substance">
query_piece_substance</a><pre class="autodocfuncdef">
string query_piece_substance()
</pre>
<dt class="autodocfuncname"><a name="query_preserved">
query_preserved</a><pre class="autodocfuncdef">
int query_preserved()
</pre><dd><br />
This tells us how the item is preserved.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />0 for not preserved, 1 for dried, 2 for cured
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_rotten">
query_rotten</a><pre class="autodocfuncdef">
int query_rotten()
</pre><dd><br />
This tells us if the food has started to rot<br />
<br /><dl>
<dd><b>Returns:</b>
<br />Return 1 if the food has started to rot, 0 otherwise.<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_decay_speed">set_decay_speed()</a>, <a href="#query_decay_speed">query_decay_speed()</a>, <a href="#set_decay_level">set_decay_level()</a>, <a href="#query_decay_level">query_decay_level()</a> and <a href="#query_decay_divisor">query_decay_divisor()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_short_rotten_adjective">
query_short_rotten_adjective</a><pre class="autodocfuncdef">
string query_short_rotten_adjective()
</pre><dd><br />
This method returns the current rotten adjective that's used
in the short description for decaying objects.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />a string like slightly rotten, mostly rotten, etc.
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_splashable">
query_splashable</a><pre class="autodocfuncdef">
int query_splashable(object splasher,
                     object splashee)
</pre><dd><br />
This queries splashability of the food.  Note that the food can only be
splashed when liquid and when set_splashable() has been called<br />
<br /><dl>
<dd><b>Parameters:</b><br />
splasher - Who splashes<br />
splashee - Who is splashed<br />
<br />
<dd><b>Returns:</b>
<br />1 if it can splash, 0 if it can't<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_splashable">set_splashable()</a>, <a href="#unset_splashable">unset_splashable()</a>, <a href="#set_liquid">set_liquid()</a> and <a href="#set_external_pk_check">set_external_pk_check()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_substance">
query_substance</a><pre class="autodocfuncdef">
varargs string query_substance(int plural,
                               int dark)
</pre>
<dt class="autodocfuncname"><a name="query_true_liquid">
query_true_liquid</a><pre class="autodocfuncdef">
int query_true_liquid()
</pre><dd><br />
This function returns one if the food is a liquid.  It's like query_liquid(),
but doesn't exist in vessels.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />Return 1 if the food is a liquid, and return 0 if it is not.
<br /><br />
<br /></dl>

<dt class="autodocfuncname"><a name="query_weight_per_bite">
query_weight_per_bite</a><pre class="autodocfuncdef">
float query_weight_per_bite()
</pre><dd><br />
This sets the weight of each bite of the food object.  This is used along
with the total weight of the object to calculate how many bites of the food
can be taken.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />The weight of each bite.
<br /><br />
<dd><b>See also:</b>
<br /><a href="std.basic.misc.c.shtml#set_weight">/std/basic/misc->set_weight()</a>, <a href="#set_weight_per_bite">set_weight_per_bite()</a> and weight.c<br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="remove_eat_effect">
remove_eat_effect</a><pre class="autodocfuncdef">
void remove_eat_effect(string word)
</pre><dd><br />
This removes the eat effect of the given name.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
word - The name of the effect to delete<br />
<br />
<dd><b>See also:</b>
<br /><a href="#add_eat_effect">add_eat_effect()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="remove_eat_function">
remove_eat_function</a><pre class="autodocfuncdef">
void remove_eat_function(mixed ob,
                         string func)
</pre><dd><br />
This removes an eat function from the set of eat functions.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
ob - The object to look for removal<br />
func - The function to look for removal
<br />
<br />
<br /></dl>

<dt class="autodocfuncname"><a name="remove_external_effect">
remove_external_effect</a><pre class="autodocfuncdef">
void remove_external_effect(string word)
</pre><dd><br />
This removes the external effect of the given name.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
word - The name of the effect to delete<br />
<br />
<dd><b>See also:</b>
<br /><a href="#add_external_effect">add_external_effect()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="reset_liquid">
reset_liquid</a><pre class="autodocfuncdef">
void reset_liquid()
</pre><dd><br />
This changes the food object into a solid.  Solids are not
'continuous' and the decay speed will be set back to the
default.
<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#set_liquid">set_liquid()</a> and <a href="#set_decay_speed">set_decay_speed()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="set_applicable">
set_applicable</a><pre class="autodocfuncdef">
void set_applicable()
</pre><dd><br />
This sets it so the food can be applied.  Note this is the default case.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#unset_applicable">unset_applicable()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="set_bites_gone">
set_bites_gone</a><pre class="autodocfuncdef">
void set_bites_gone(mixed number)
</pre><dd><br />
This sets the number of bites gone.  This helps determine the total weight of
the object.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
number - The number of bites gone
<br />
<br />
<dd><b>See also:</b>
<br /><a href="#set_weight_per_bite">set_weight_per_bite()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="set_decay_level">
set_decay_level</a><pre class="autodocfuncdef">
void set_decay_level(int level)
</pre><dd><br />
This sets the decay level.  It lets you make a food object seem as though it
is already decaying.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
level - The new decay level
<br />
<br />
<dd><b>See also:</b>
<br /><a href="#query_decay_level">query_decay_level()</a> and <a href="#set_decay_speed">set_decay_speed()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="set_decay_speed">
set_decay_speed</a><pre class="autodocfuncdef">
void set_decay_speed(int decay)
</pre><dd><br />
This sets the speed at which a food object decays.  The speed is set in
seconds and is the total amount of time before the food decays.
<p>
If the decay speed is set to 0, then the object will never decay.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
speed - The speed at which the object will decay<br />
<br />
<dd><b>See also:</b>
<br /><a href="#set_decay_level">set_decay_level()</a> and <a href="#query_decay_speed">query_decay_speed()</a><br /><br /><dd><b>Example:</b>
<br/><pre>/* This will make the object decay totally in 30 minutes */
set_decay_speed( 1800 );</pre><br/><pre>
/* This will stop the object from ever decaying */
set_decay_speed( 0 );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_eat_effects">
set_eat_effects</a><pre class="autodocfuncdef">
void set_eat_effects(mapping map)
</pre><dd><br />
This sets all the eat effects.  This function should NOT
be used.  Please use add_eat_effect.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
map - The eat effects mapping.
<br />
<br />
<br /></dl>

<dt class="autodocfuncname"><a name="set_eat_mess">
set_eat_mess</a><pre class="autodocfuncdef">
void set_eat_mess(mixed word)
</pre><dd><br />
The eat mess should be treated exactly the same as a add_succeeded_mess(), as
it is processed later as add_succeeded_mess( eat_mess, ({ }) );<br />
<br /><dl>
<dd><b>Parameters:</b><br />
word - The string or array to be used as the add_succeeded_mess() when
eating the food.
<br />
<br />
<dd><b>See also:</b>
<br /><a href="global.new_parse.c.shtml#add_succeeded_mess">/global/new_parse->add_succeeded_mess()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="set_external_effects">
set_external_effects</a><pre class="autodocfuncdef">
void set_external_effects(mapping map)
</pre><dd><br />
This sets all the external effects.  This function should NOT be used.
Please use add_external_effect.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
map - The external effects mapping
<br />
<br />
<br /></dl>

<dt class="autodocfuncname"><a name="set_external_pk_check">
set_external_pk_check</a><pre class="autodocfuncdef">
void set_external_pk_check()
</pre><dd><br />
This makes the external effects pk checked.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#add_external_effect">add_external_effect()</a>, <a href="#set_applicable">set_applicable()</a>, <a href="#set_splashable">set_splashable()</a> and <a href="#unset_external_pk_check">unset_external_pk_check()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="set_fraction_cut">
set_fraction_cut</a><pre class="autodocfuncdef">
void set_fraction_cut(int num)
</pre><dd><br />
This sets how many pieces the food has been cut into.  1 is intact, 2 is cut
in half, etc.  This can be used to make original food look like it has been
cut.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
num - How many pieces the thing has been cut into
<br />
<br />
<br /></dl>

<dt class="autodocfuncname"><a name="set_inedible">
set_inedible</a><pre class="autodocfuncdef">
void set_inedible(int i)
</pre><dd><br />
This makes the food inedible.  Useful for things that rots but can't be
eaten.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
i - If the food is inedible or not
<br />
<br />
<br /></dl>

<dt class="autodocfuncname"><a name="set_liquid">
set_liquid</a><pre class="autodocfuncdef">
void set_liquid()
</pre><dd><br />
This changes the food object into a liquid.  Liquids are automatically a
'continuous' medium, which means it will combine with other liquids of the
same type.
<p>
This will automatically set the decay speed to 0.  Liquids do not decay.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#reset_liquid">reset_liquid()</a>, <a href="#set_decay_speed">set_decay_speed()</a> and <a href="obj.cont_medium.c.shtml#set_continuous">/obj/cont_medium->set_continuous()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="set_piece_description">
set_piece_description</a><pre class="autodocfuncdef">
void set_piece_description(string word)
</pre><dd><br />
This sets the long description of the food when it is has 'cut' into pieces.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
word - The long description to use when cut into pieces.<br />
<br />
<dd><b>See also:</b>
<br /><a href="#query_in_pieces">query_in_pieces()</a>, <a href="#set_piece_short">set_piece_short()</a>, <a href="#set_piece_plural">set_piece_plural()</a> and <a href="#set_piece_substance">set_piece_substance()</a><br /><br /><dd><b>Example:</b>
<br/><pre>set_piece_description( "The brown, soft, moist piece of cake looks totally "
         "wonderful.\n" );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_piece_plural">
set_piece_plural</a><pre class="autodocfuncdef">
void set_piece_plural(string plural)
</pre><dd><br />
This plural description used for the pieces.  It is only really of use if the
piece short pluralises in an unusual manner.  If it is not set the piece
plural is set to what the pice short has been set to with an "s" stuck on the
end, for example, slice to slices.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
word - The plural used for the 'pieces' when cut into
pieces.<br />
<br />
<dd><b>See also:</b>
<br /><a href="#query_in_pieces">query_in_pieces()</a>, <a href="#set_piece_description">set_piece_description()</a>, <a href="#set_piece_short">set_piece_short()</a> and <a href="#set_piece_substance">set_piece_substance()</a><br /><br /><dd><b>Example:</b>
<br/><pre>set_piece_plural( "slices" );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_piece_short">
set_piece_short</a><pre class="autodocfuncdef">
void set_piece_short(string short)
</pre><dd><br />
This is the description used in the short for the pieces.  When the object is
cut up this is used as the short description.  For example, it can change
'piece of cake' to 'slice of cake', 'piece of chocolate' to 'square of
chocolate', and so on.  If the piece short has not been set it is set to the
default which is simply "piece".<br />
<br /><dl>
<dd><b>Parameters:</b><br />
word - The short to use for the 'piece' when cut into pieces.<br />
<br />
<dd><b>See also:</b>
<br /><a href="#query_in_pieces">query_in_pieces()</a>, <a href="#set_piece_description">set_piece_description()</a>, <a href="#set_piece_plural">set_piece_plural()</a> and <a href="#set_piece_substance">set_piece_substance()</a><br /><br /><dd><b>Example:</b>
<br/><pre>set_piece_short( "slice" );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_piece_substance">
set_piece_substance</a><pre class="autodocfuncdef">
void set_piece_substance(string substance)
</pre><dd><br />
This sets a new description for what there are pieces of.  For example, if
you want the short of the food before it is cut up to be 'bar of chocolate',
without the piece substance being set, when it is cut up it will become
'a piece of bar of chocolate'.  If you set this in enables you to change that
unwieldly description to 'a piece of chocolate'.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
word - The description of what the 'piece' is of.<br />
<br />
<dd><b>See also:</b>
<br /><a href="#query_in_pieces">query_in_pieces()</a>, <a href="#set_piece_description">set_piece_description()</a>, <a href="#set_piece_short">set_piece_short()</a> and <a href="#set_piece_plural">set_piece_plural()</a><br /><br /><dd><b>Example:</b>
<br/><pre>set_piece_substance( "chocolate" );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_splashable">
set_splashable</a><pre class="autodocfuncdef">
void set_splashable()
</pre><dd><br />
This sets it so the food can be splashed.  Note that the food can only be
splashed when liquid in any case.  Note this is NOT the default case.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#unset_splashable">unset_splashable()</a>, <a href="#set_applicable">set_applicable()</a>, <a href="#unset_applicable">unset_applicable()</a> and <a href="#add_external_effect">add_external_effect()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="set_weight_per_bite">
set_weight_per_bite</a><pre class="autodocfuncdef">
void set_weight_per_bite(mixed number)
</pre><dd><br />
This sets weight of each bite of the food object.  This is used along with
the total weight of the object to calculate how many bites of the food can be
taken.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
number - The weight each bite should be.
<br />
<br />
<dd><b>See also:</b>
<br /><a href="std.basic.misc.c.shtml#set_weight">/std/basic/misc->set_weight()</a> and weight.c<br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="setup_eat_piece_messages">
setup_eat_piece_messages</a><pre class="autodocfuncdef">
varargs void setup_eat_piece_messages(mixed piece,
                                      mixed amt,
                                      mixed last,
                                      mixed first)
</pre><dd><br />
This sets up the eat messages for pieces and stuff.  The amount message
will replace the $amt$ string in the message with the amount_string().<br />
<br /><dl>
<dd><b>Parameters:</b><br />
Piece - the eat piece message.  This can be either a string or an
array, it is passed to add_succeeded_mess()<br />
amt - The amount messages<br />
last - The message to print out when the last bit gets eaten<br />
first - The message to print when the first bite is taken
<br />
<br />
<br /></dl>

<dt class="autodocfuncname"><a name="slice_up">
slice_up</a><pre class="autodocfuncdef">
varargs object * slice_up(int num_pieces,
                          int messages)
</pre><dd><br />
This cuts the food item up into pieces, and returns the bits.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
num_pieces - How many pieces to create, defaults to 2<br />
messages - 1 if succeeded/failed messages should be added to
this_player() (only used internally)<br />
<br />
<dd><b>Returns:</b>
<br />The bits in a nice array
<br /><br />
<dd><b>See also:</b>
<br /><a href="#do_cut">do_cut()</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="unset_applicable">
unset_applicable</a><pre class="autodocfuncdef">
void unset_applicable()
</pre><dd><br />
This sets it so the food cannot be applied.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#set_applicable">set_applicable()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="unset_external_pk_check">
unset_external_pk_check</a><pre class="autodocfuncdef">
void unset_external_pk_check()
</pre><dd><br />
This makes the external effects not pk checked.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#add_external_effect">add_external_effect()</a>, <a href="#set_applicable">set_applicable()</a>, <a href="#set_splashable">set_splashable()</a> and <a href="#set_external_pk_check">set_external_pk_check()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="unset_splashable">
unset_splashable</a><pre class="autodocfuncdef">
void unset_splashable()
</pre><dd><br />
This sets it so the food cannot be splashed.
Note that the food can only be splashed when liquid in any case.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#set_splashable">set_splashable()
</a><br /><br /><br /></dl>

</dl>
<h2>Classes</h2>
These are nice data types for dealing with...  Data!<p>
<ul>
<li><a name="class_eat_function">
eat_function</a><pre>
class eat_function {
                     string ob;
                     string func;
                     mixed * args;
}

</pre><br/>
This class contains a function to call.<p>
<dl>
<dt><b>Members:</b>
<br />ob - The object to call the function on<br />
<br />func - The function to call on the object<br />
<br />args - Any extra arguments that should be passed to the function
<br />
</dl>

</ul>
[an error occurred while processing this directive]

