[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 /global/events.c</h2>
This file contains all the standard event handling code that players
need.  This will handle things like informs, shouts, says, tells,
whispers.  Everything!   It formats the message correctly and
sends it to the player.<p>Written by Pinkfish
<h2>Inherits</h2>
This class inherits the following classes <a href="global.friends.c.shtml">/global/friends.c</a>, <a href="global.communicate.c.shtml">/global/communicate.c</a>, <a href="global.new_parse.c.shtml">/global/new_parse.c</a>, /global/options_control.c and /global/play_parse_com.c<h2>Includes</h2>
This class includes the following files <a href="include.term.h.shtml">/include/term.h</a>, <a href="include.living.h.shtml">/include/living.h</a>, <a href="include.newbiehelpers.h.shtml">/include/newbiehelpers.h</a>, <a href="include.cmds.options.h.shtml">/include/cmds/options.h</a>, <a href="include.tune.h.shtml">/include/tune.h</a>, <a href="include.telnet.h.shtml">/include/telnet.h</a>, <a href="include.playtesters.h.shtml">/include/playtesters.h</a>, <a href="include.dirs.h.shtml">/include/dirs.h</a>, <a href="include.player.h.shtml">/include/player.h</a>, <a href="include.playerinfo.h.shtml">/include/playerinfo.h</a>, <a href="include.broadcaster.h.shtml">/include/broadcaster.h</a> and <a href="include.language.h.shtml">/include/language.h</a><h2>Class Index</h2>
<ul><li><a href="#class_event_info">event_info</a>
</ul><h2>Method index</h2>
<dl><ul>
<li><a href="#add_message">add_message</a>(string, mixed *)<br/>
This adds a message into the current list of printable messages.
<li><a href="#check_earmuffs">check_earmuffs</a>(string, object)<br/>
This method checks to see if a particular event is earmuffed.
<li><a href="#colour_event">colour_event</a>(string, string)<br/>
This function returns the appropriate colour codes for the given event
type.
<li><a href="#convert_message">convert_message</a>(string)<br/>
This method will handle doing exciting things to messages and
returning them as a usable format.
<li><a href="#do_busy">do_busy</a>(string)<br/>
This method handles setting the busy flag.
<li><a href="#do_busy_player">do_busy_player</a>(object *)<br/>
This method allows creators to set the player for whom they are currently
busy too.
<li><a href="#do_inform">do_inform</a>(string)<br/>
This is the command to handle the inform stuff.
<li><a href="#do_tell_his">do_tell_his</a>(string, int)<br/>
This method is the command used to print a players tell history.
<li><a href="#enter_exit_mess">enter_exit_mess</a>(string, object, int)<br/>
This method is called when an object leaves or arrives in
the room.
<li><a href="#evaluate_message">evaluate_message</a>(mixed *)<br/>
This is the main evaluation routine.
<li><a href="#event_combat">event_combat</a>(object, string, object *, int)<br/>
This event is generated when a combat message occurs.
<li><a href="#event_commands">event_commands</a>()<br/>
This method adds all the event commands onto the player.
<li><a href="#event_creator_tell">event_creator_tell</a>(object, string, string, int, string)<br/>
This event is generated when a creator tell is done.
<li><a href="#event_emote">event_emote</a>(object, string)<br/>
This method is called when someone does an emote.
<li><a href="#event_enter">event_enter</a>(object, string, )<br/>
This method is called when an object enters the room.
<li><a href="#event_exit">event_exit</a>(object, string, object)<br/>
This method is printed when an object exits the room.
<li><a href="#event_inform">event_inform</a>(, mixed, string, object)<br/>
This method is called when an inform event is called.
<li><a href="#event_inter_creator_tell">event_inter_creator_tell</a>(object, string, string, string, object, int)<br/>
This event is generated when a intermud creator tell is done.
<li><a href="#event_intermud_tell">event_intermud_tell</a>(object, string, string, string, object)<br/>
This event is generated when a creator tell is done.
<li><a href="#event_lord_tell">event_lord_tell</a>(object, string, string, int)<br/>
This event is generated when a lord tell is done.
<li><a href="#event_newbie">event_newbie</a>(object, string)<br/>
This event is generated when a newbie chat event is done.
<li><a href="#event_newbiehelpers">event_newbiehelpers</a>(object, string)<br/>
This event is generated when a newbiehelpers chat event is done.
<li><a href="#event_person_say">event_person_say</a>(object, string, string, string, string)<br/>
This method is called when someone says something.
<li><a href="#event_person_shout">event_person_shout</a>(object, string, string, string, int *, int)<br/>
This method is generated when a shout is done by a player.
<li><a href="#event_person_tell">event_person_tell</a>(object, string, string)<li><a href="#event_player_echo">event_player_echo</a>(object, string)<br/>
This method is called when an echo is generated by a player.
<li><a href="#event_player_echo_to">event_player_echo_to</a>(object, string, object)<br/>
This method is called when an echo to is generated by the player.
<li><a href="#event_player_emote_all">event_player_emote_all</a>(object, string)<br/>
This method is called when an emoteall is generated by a player.
<li><a href="#event_say">event_say</a>(object, string, mixed, string)<br/>
This method is called when the 'say' and 'tell_room' simul_efuns is used.
<li><a href="#event_see">event_see</a>(object, string, object, mixed)<li><a href="#event_soul">event_soul</a>(object, string, mixed)<br/>
This method is called by the soul to print out the soul messages.
<li><a href="#event_whisper">event_whisper</a>(object, string, string, object *, string, object)<br/>
This method is called when the whisper even is generated.
<li><a href="#event_write">event_write</a>(object, string, string)<br/>
This method is called by the simul_efun 'write'.
<li><a href="#fit_message">fit_message</a>(string)<br/>
This method fits a message into a the current players screen size.
<li><a href="#fix_for_mxp">fix_for_mxp</a>(string)<br/>
This method does any extra mxp processing on the output string
so it will work with the client correctly.
<li><a href="#fix_string">fix_string</a>(string, int, int, int, mixed * args)<br/>
This method handles the conversersions for the colour mapping which is
done on Discworld.
<li><a href="#get_htell_func">get_htell_func</a>()<br/>
Return function pointer for do_tell_his, for htell only.
<li><a href="#indent_column">indent_column</a>(string, int, int)<br/>
This method handles doing the indenting of the input string, fitting it
correctly to the width of the column.
<li><a href="#mxp_enable">mxp_enable</a>()<br/>
This is a callback generated by the driver to deal with mxp related
stuff.
<li><a href="#my_mirror_short">my_mirror_short</a>(object, string)<br/>
This is a special function for use with the reform message, it allows
the string to be echoed into the list instead of using the object's
value itself.
<li><a href="#octarine_message">octarine_message</a>(string)<br/>
This method will do the octarine checking for you on the message.
<li><a href="#print_messages">print_messages</a>()<br/>
This prints out the messages after the delay, printing out the
messages in a nice cute way.
<li><a href="#query_allow_friends_earmuffs">query_allow_friends_earmuffs</a>()<br/>
This method will return a flag if the allow friends flag is turned on
or not
<li><a href="#query_busy">query_busy</a>()<br/>
This method tells us if the player/creator/lord is currently in busy
mode.
<li><a href="#query_cols">query_cols</a>()<br/>
This method returns the current number of columns the player has
set on their screen.
<li><a href="#query_cur_term">query_cur_term</a>()<br/>
This method returns the current terminal type that is being used.
<li><a href="#query_earmuffs">query_earmuffs</a>()<br/>
This method tells us if the player currently has earmuffs turned on.
<li><a href="#query_inform_types">query_inform_types</a>()<br/>
This method returns the list of inform types this player can receive.
<li><a href="#query_my_colours">query_my_colours</a>()<br/>
Return a players list of custom colours.
<li><a href="#query_rows">query_rows</a>()<br/>
This method returns the current number of rows the player has
set on their screen.
<li><a href="#query_see_octarine">query_see_octarine</a>()<br/>
This method tests to see if the player can see octarine objects.
<li><a href="#query_term_name">query_term_name</a>()<br/>
This method returns the current terminal name.
<li><a href="#receive_snoop">receive_snoop</a>(string)<br/>
This method is generated internally by the driver when this player is
snooping someone else.
<li><a href="#reform_message">reform_message</a>(string, mixed *)<br/>
This method does all those terrible things with messages and $'s
turning them into real strings.
<li><a href="#reset_colour_map">reset_colour_map</a>()<br/>
This method resets the colour map information on the player.
<li><a href="#set_allow_friends_earmuffs">set_allow_friends_earmuffs</a>()<br/>
This method will set the system to allow friends to punch through
earmuffs.
<li><a href="#set_cols">set_cols</a>(int)<br/>
This method sets the current number of columns the player has set on
their screen.
<li><a href="#set_looked">set_looked</a>(object)<li><a href="#set_my_colours">set_my_colours</a>(string, string)<br/>
set the colour codes for a given event

<li><a href="#set_network_terminal_type">set_network_terminal_type</a>(string)<br/>
This method handles the responses from the remote site informing
us of their terminal type.
<li><a href="#set_rows">set_rows</a>(int)<br/>
This method sets the number of rows on the players screen.
<li><a href="#set_term_type">set_term_type</a>(string)<br/>
This method sets the current terminal type for the player.
<li><a href="#show_message">show_message</a>(string)<br/>
This method shows the message to the player.
<li><a href="#some_more">some_more</a>(string)<li><a href="#terminal_type">terminal_type</a>(string)<br/>
This is a call back generated by the driver internally to tell us about
terminal types.
<li><a href="#toggle_earmuffs">toggle_earmuffs</a>()<br/>
This method will change the current value of the earmuffs on the player.
<li><a href="#window_size">window_size</a>(int, int)<br/>
This is a call back generated by the driver internally to tell us about
the window size of the remote machine.
</ul><h2>Public Functions</h2>
These are functions that everyone can access.<p>
.<ul><a name="add_message">
add_message</a><pre>
void add_message(string message,
                 mixed * things)
</pre></br>
This adds a message into the current list of printable messages.  This
will be squided up together and printed out slightly later, this handles
the concatenating of enter messages, and soul messages.  Etc.
<br/><ul>
<li><b>Parameters:</b>
<br/>message - the message to add
<br/>things - the objects which are involved with the message
<li><b>See also:</b>
<br/><a href="#reform_message">reform_message()
</a></dl>

<ul><a name="check_earmuffs">
check_earmuffs</a><pre>
int check_earmuffs(string type,
                   object person)
</pre></br>
This method checks to see if a particular event is earmuffed.
<br/><ul>
<li><b>Parameters:</b>
<br/>type - the type of event to check
<br/>person - the person who is being checked for the earmuffing of
<li><b>Returns:</b>
<br/>1 if the event is earmuffed and 0 if it is not
<li><b>See also:</b>
<br/><a href="#toggle_earmuffs">toggle_earmuffs()</a> and <a href="#query_earmuffs">query_earmuffs()</a><li><b>Example:</b>
<br/><pre>obs = users();

obs = filter(obs, (: $1->check_earmuffs("shout", this_player()) :) );
// Do the shout
</pre></dl>

<ul><a name="colour_event">
colour_event</a><pre>
string colour_event(string event_type,
                    string default_colour)
</pre></br>
This function returns the appropriate colour codes for the given event
type. It will return the players chosen colour if they've set one or
the default if not.

<br/><ul>
<li><b>Parameters:</b>
<br/>event_type - The type of event
<li><b>Returns:</b>
<br/>a string of colour codes.

</dl>

<ul><a name="convert_message">
convert_message</a><pre>
string convert_message(string message)
</pre></br>
This method will handle doing exciting things to messages and
returning them as a usable format.
<br/><ul>
<li><b>Parameters:</b>
<br/>message - the message to evaluate
<li><b>Returns:</b>
<br/>the message in a printable (to the player) format
<li><b>See also:</b>
<br/><a href="#evaluate_message">evaluate_message()
</a></dl>

<ul><a name="do_busy">
do_busy</a><pre>
int do_busy(string str)
</pre></br>
This method handles setting the busy flag.  The busy flag can only
be set by liaisons and lords, why lords?  Just because :)  This
command was inspired by moonchild.
<br/><ul>
<li><b>Parameters:</b>
<br/>str - the on or off string
<li><b>Returns:</b>
<br/>1 on success, 0 on failure

</dl>

<ul><a name="do_busy_player">
do_busy_player</a><pre>
int do_busy_player(object * obs)
</pre></br>
This method allows creators to set the player for whom they are currently
busy too.
<br/><ul>
<li><b>Parameters:</b>
<br/>obs - the player to be busy with
<li><b>Returns:</b>
<br/>1 on success, 0 on failure

</dl>

<ul><a name="evaluate_message">
evaluate_message</a><pre>
string evaluate_message(mixed * stuff)
</pre></br>
This is the main evaluation routine.  This is the one that
co-ordinates the works...  It is used by the print_messages
routine to create the message to print out.
<p>
The input parameter contains two elements, the first is the
message and the second is the things array.  This corresponds to
the values returned by the fix_message method.
<br/><ul>
<li><b>Parameters:</b>
<br/>stuff - the message to evaulate
<li><b>Returns:</b>
<br/>the nice printed out string
<li><b>See also:</b>
<br/><a href="#print_messages">print_messages()
</a></dl>

<ul><a name="event_combat">
event_combat</a><pre>
void event_combat(object thing,
                  string message,
                  object * exclude,
                  int verbose)
</pre></br>
This event is generated when a combat message occurs.
<br/><ul>
<li><b>Parameters:</b>
<br/>thing - the thing generateing the event.
<br/>message - the message to be displayed.
<br/>exclude - objects not to show this message to.
<br/>verbose - is the message considered verbose?

</dl>

<ul><a name="event_commands">
event_commands</a><pre>
void event_commands()
</pre></br>
This method adds all the event commands onto the player.
This will be called in the player startup sequence.


<ul><a name="event_creator_tell">
event_creator_tell</a><pre>
nomask void event_creator_tell(object ob,
                               string start,
                               string mess,
                               int forced,
                               string channel)
</pre></br>
This event is generated when a creator tell is done.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object generating the event
<br/>start - the start bit
<br/>mess - the message bit
<br/>forced - if it is forced to occur
<br/>channel - the creator channel to talk on

</dl>

<ul><a name="event_emote">
event_emote</a><pre>
void event_emote(object thing,
                 string mess)
</pre></br>
This method is called when someone does an emote.
<br/><ul>
<li><b>Parameters:</b>
<br/>thing - the object doing the emote
<br/>mess - the emote to print

</dl>

<ul><a name="event_enter">
event_enter</a><pre>
void event_enter(object thing,
                 string mess,
                  object)
</pre></br>
This method is called when an object enters the room.
<br/><ul>
<li><b>Parameters:</b>
<br/>thing - the thing entering
<br/>mess - the message to print on entering

</dl>

<ul><a name="event_exit">
event_exit</a><pre>
void event_exit(object thing,
                string mess,
                object to)
</pre></br>
This method is printed when an object exits the room.
<br/><ul>
<li><b>Parameters:</b>
<br/>thing - the object exiting
<br/>mess - the message to print
<br/>to - where the object is going to

</dl>

<ul><a name="event_inform">
event_inform</a><pre>
nomask varargs void event_inform( object,
                                 mixed mess,
                                 string which,
                                 object thing)
</pre></br>
This method is called when an inform event is called.
<br/><ul>
<li><b>Parameters:</b>
<br/>mess - the message to print
<br/>which - the type of inform
</dl>

<ul><a name="event_inter_creator_tell">
event_inter_creator_tell</a><pre>
void event_inter_creator_tell(object ob,
                              string mname,
                              string pname,
                              string mess,
                              object ig,
                              int emote)
</pre></br>
This event is generated when a intermud creator tell is done.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object generating the event
<br/>mname - the name of the mud
<br/>pname - the name of the player
<br/>mess - the message
<br/>ig - the ignore object
<br/>emote - if it is an emote

</dl>

<ul><a name="event_intermud_tell">
event_intermud_tell</a><pre>
void event_intermud_tell(object ob,
                         string start,
                         string mess,
                         string channel,
                         object ig)
</pre></br>
This event is generated when a creator tell is done.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object generating the event
<br/>mname - the name of the mud
<br/>pname - the name of the player
<br/>mess - the message
<br/>ig - the ignore object
<br/>emote - if it is an emote

</dl>

<ul><a name="event_lord_tell">
event_lord_tell</a><pre>
nomask void event_lord_tell(object ob,
                            string start,
                            string mess,
                            int forced)
</pre></br>
This event is generated when a lord tell is done.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object generating the event
<br/>start - the start bit
<br/>mess - the message bit
<br/>forced - if it is forced to occur

</dl>

<ul><a name="event_newbie">
event_newbie</a><pre>
void event_newbie(object thing,
                  string message)
</pre></br>
This event is generated when a newbie chat event is done.
<br/><ul>
<li><b>Parameters:</b>
<br/>thing - the thing generateing the newbie chat
<br/>message - the message the newbie said

</dl>

<ul><a name="event_newbiehelpers">
event_newbiehelpers</a><pre>
void event_newbiehelpers(object thing,
                         string message)
</pre></br>
This event is generated when a newbiehelpers chat event is done.
<br/><ul>
<li><b>Parameters:</b>
<br/>thing - the thing generateing the newbiehelpers chat
<br/>message - the message the newbiehelper said

</dl>

<ul><a name="event_person_say">
event_person_say</a><pre>
void event_person_say(object ob,
                      string start,
                      string mess,
                      string lang,
                      string accent)
</pre></br>
This method is called when someone says something.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object doing the say
<br/>start - the start message
<br/>mess - the message to say
<br/>lang - the language it is printed in
<br/>accent - the accent object to use

</dl>

<ul><a name="event_person_shout">
event_person_shout</a><pre>
void event_person_shout(object thing,
                        string start,
                        string mess,
                        string lang,
                        int * co_ord,
                        int range)
</pre></br>
This method is generated when a shout is done by a player.
<br/><ul>
<li><b>Parameters:</b>
<br/>thing - the thing doing the shout
<br/>start - the start string to print
<br/>mess - the message to print
<br/>lang - the language the shout is in
<br/>co_ord - the co-ordinate of the shouter
<br/>range - the range of the shout

</dl>

<ul><a name="event_person_tell">
event_person_tell</a><pre>
void event_person_tell(object ob,
                       string start,
                       string mess)
</pre>
<ul><a name="event_player_echo">
event_player_echo</a><pre>
void event_player_echo(object ob,
                       string mess)
</pre></br>
This method is called when an echo is generated by a player.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object doing the echo
<br/>mess - the message being printed

</dl>

<ul><a name="event_player_echo_to">
event_player_echo_to</a><pre>
void event_player_echo_to(object ob,
                          string mess,
                          object me)
</pre></br>
This method is called when an echo to is generated by the player.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object doing the echo to
<br/>mess - the message being printed
<br/>me - the person generating the echo to

</dl>

<ul><a name="event_player_emote_all">
event_player_emote_all</a><pre>
void event_player_emote_all(object ob,
                            string mess)
</pre></br>
This method is called when an emoteall is generated by a player.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object doing the emoteall
<br/>mess - the message being printed

</dl>

<ul><a name="event_say">
event_say</a><pre>
void event_say(object caller,
               string str,
               mixed avoid,
               string language)
</pre></br>
This method is called when the 'say' and 'tell_room' simul_efuns is used.
<br/><ul>
<li><b>Parameters:</b>
<br/>caller - the object doing the say
<br/>str - the message to print
<br/>avoid - the people to avoid in the say

</dl>

<ul><a name="event_see">
event_see</a><pre>
void event_see(object caller,
               string words,
               object thing,
               mixed avoid)
</pre>
<ul><a name="event_soul">
event_soul</a><pre>
varargs void event_soul(object ob,
                        string str,
                        mixed avoid)
</pre></br>
This method is called by the soul to print out the soul messages.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object doing the soul
<br/>str - the string to print
<br/>avoid - the people not to print the message to

</dl>

<ul><a name="event_whisper">
event_whisper</a><pre>
void event_whisper(object ob,
                   string start,
                   string mess,
                   object * obs,
                   string lang,
                   object me)
</pre></br>
This method is called when the whisper even is generated.
<br/><ul>
<li><b>Parameters:</b>
<br/>ob - the object whispering
<br/>start - the start of the whisper message
<br/>mess - the message to print
<br/>obs - the objects to tell the message to
<br/>lang - the lanaguage the whisper is in
<br/>me - the object doing the whispering

</dl>

<ul><a name="event_write">
event_write</a><pre>
void event_write(object caller,
                 string str,
                 string language)
</pre></br>
This method is called by the simul_efun 'write'.
<br/><ul>
<li><b>Parameters:</b>
<br/>caller - the calling object
<br/>str - the string to write, can be a pointer to two strings with a language
<br/>language - the language to write with

</dl>

<ul><a name="fit_message">
fit_message</a><pre>
string fit_message(string message)
</pre></br>
This method fits a message into a the current players screen size.  This
does all sorts of other evil stuff too, like handling indenting and
all sorts of things!  Most of which I do not understand so I won't
say anything about here.  The $C$ does capitalization, $I$<num>=
does indenting of all the following lines of <num> spaces.  The
message automatically has $I$0=$C$ prepended to the message if it
does not start with $I$.  SO if you start a message with $I$ then it
will not capitalize the first letter of the message.
<br/><ul>
<li><b>Parameters:</b>
<br/>message - the message to fit in
<li><b>Returns:</b>
<br/>the fitted message

</dl>

<ul><a name="fix_for_mxp">
fix_for_mxp</a><pre>
string fix_for_mxp(string input)
</pre></br>
This method does any extra mxp processing on the output string
so it will work with the client correctly.
<br/><ul>
<li><b>Parameters:</b>
<br/>input - the input string
<li><b>Returns:</b>
<br/>the output string with mangling

</dl>

<ul><a name="fix_string">
fix_string</a><pre>
varargs string fix_string(string str,
                          int width,
                          int indent,
                          int padding,
                          mixed * args ...)
</pre></br>
This method handles the conversersions for the colour mapping which is
done on Discworld.  This also does octarine message expansion, if the
keyword %\^OCTARINE:message%\^ is embeded into a string then the
inside section will be replaced with a blank string if the player
cannot see octarine messages.
<br/><ul>
<li><b>Parameters:</b>
<br/>str - the string to do the conversion on
<br/>width - the width of the string
<br/>indent - the size of the indent
<br/>args - any other arguments
<li><b>Returns:</b>
<br/>the fixed up string
<li><b>See also:</b>
<br/><a href="#efun::terminal_colour">efun::terminal_colour()
</a></dl>

<ul><a name="get_htell_func">
get_htell_func</a><pre>
function get_htell_func()
</pre></br>
Return function pointer for do_tell_his, for htell only.


<ul><a name="indent_column">
indent_column</a><pre>
string indent_column(string column,
                     int width,
                     int pad)
</pre></br>
This method handles doing the indenting of the input string, fitting it
correctly to the width of the column.
<br/><ul>
<li><b>Parameters:</b>
<br/>part - the column to do stuff with.

</dl>

<ul><a name="mxp_enable">
mxp_enable</a><pre>
void mxp_enable()
</pre></br>
This is a callback generated by the driver to deal with mxp related
stuff.


<ul><a name="my_mirror_short">
my_mirror_short</a><pre>
string my_mirror_short(object thing,
                       string arg)
</pre></br>
This is a special function for use with the reform message, it allows
the string to be echoed into the list instead of using the object's
value itself.  This is done specifically to handle objects with
variable shorts, so we get the short description correct at the
moment it is queried.


<ul><a name="octarine_message">
octarine_message</a><pre>
string octarine_message(string str)
</pre></br>
This method will do the octarine checking for you on the message.
<br/><ul>
<li><b>Parameters:</b>
<br/>str - the string to check
<li><b>See also:</b>
<br/><a href="#query_see_octarine">query_see_octarine()</a><li><b>Example:</b>
<br/><pre>string query_long_bit() {
  return "Glinting and sharp looking, the long sword is an impressive "
         "weapon in the hands of someone knowledgeable.\n" +
         this_player()->octarine_message("It glows with a fluffy octarine "
                                         "aura.\n");
} /* query_long_bit() */
</pre></dl>

<ul><a name="print_messages">
print_messages</a><pre>
void print_messages()
</pre></br>
This prints out the messages after the delay, printing out the
messages in a nice cute way.  It still retains the order of the
messages though.  This can be forced to occur by a message
occuring on the player object which requires something to
be printed.
<br/><ul>
<li><b>See also:</b>
<br/><a href="#evaluate_message">evaluate_message()</a> and <a href="#show_message">show_message()
</a></dl>

<ul><a name="query_allow_friends_earmuffs">
query_allow_friends_earmuffs</a><pre>
int query_allow_friends_earmuffs()
</pre></br>
This method will return a flag if the allow friends flag is turned on
or not
<br/><ul>
<li><b>Returns:</b>
<br/>the earmnuff flag

</dl>

<ul><a name="query_busy">
query_busy</a><pre>
mixed query_busy()
</pre></br>
This method tells us if the player/creator/lord is currently in busy
mode.  This will be 1 if the creatopr is generaly busy, or
it will return the array of players they are busy with.
<br/><ul>
<li><b>Returns:</b>
<br/>the busy mode flag

</dl>

<ul><a name="query_cols">
query_cols</a><pre>
int query_cols()
</pre></br>
This method returns the current number of columns the player has
set on their screen.
<br/><ul>
<li><b>Returns:</b>
<br/>the number of columns on the screen
<li><b>See also:</b>
<br/><a href="#set_cols">set_cols()
</a></dl>

<ul><a name="query_cur_term">
query_cur_term</a><pre>
string query_cur_term()
</pre></br>
This method returns the current terminal type that is being used.  This
will be 0 if the terminal name is set to network and no response has
been gained from the remote site yet.  Otherwise it should be the
same value as the terminal name.
<br/><ul>
<li><b>Returns:</b>
<br/>the current terminal type
<li><b>See also:</b>
<br/><a href="#query_term_name">query_term_name()</a> and <a href="#set_term_type">set_term_type()
</a></dl>

<ul><a name="query_earmuffs">
query_earmuffs</a><pre>
int query_earmuffs()
</pre></br>
This method tells us if the player currently has earmuffs turned on.
<br/><ul>
<li><b>Returns:</b>
<br/>1 if earmuffs are on, 0 if they are not
<li><b>See also:</b>
<br/><a href="#check_earmuffs">check_earmuffs()</a> and <a href="#toggle_earmuffs">toggle_earmuffs()
</a></dl>

<ul><a name="query_inform_types">
query_inform_types</a><pre>
string * query_inform_types()
</pre></br>
This method returns the list of inform types this player can receive.
<br/><ul>
<li><b>Returns:</b>
<br/>array of inform types

</dl>

<ul><a name="query_my_colours">
query_my_colours</a><pre>
mapping query_my_colours()
</pre></br>
Return a players list of custom colours.
<br/><ul>
<li><b>Returns:</b>
<br/>a mapping of the players custom colours for different events.

</dl>

<ul><a name="query_rows">
query_rows</a><pre>
int query_rows()
</pre></br>
This method returns the current number of rows the player has
set on their screen.
<br/><ul>
<li><b>Returns:</b>
<br/>the number of rows on the screen
<li><b>See also:</b>
<br/><a href="#set_rows">set_rows()
</a></dl>

<ul><a name="query_see_octarine">
query_see_octarine</a><pre>
int query_see_octarine()
</pre></br>
This method tests to see if the player can see octarine objects.
<br/><ul>
<li><b>Returns:</b>
<br/>1 if they can see octarine, 0 if they cannot

</dl>

<ul><a name="query_term_name">
query_term_name</a><pre>
string query_term_name()
</pre></br>
This method returns the current terminal name.  If this is set to
network then the network will be queried for the terminal type
(using telnet suboption negotiation).
<br/><ul>
<li><b>Returns:</b>
<br/>the current terminal name
<li><b>See also:</b>
<br/><a href="#query_cur_term">query_cur_term()</a> and <a href="#set_term_type">set_term_type()
</a></dl>

<ul><a name="receive_snoop">
receive_snoop</a><pre>
void receive_snoop(string mess)
</pre></br>
This method is generated internally by the driver when this player is
snooping someone else.
<br/><ul>
<li><b>Parameters:</b>
<br/>mess - the snoop message

</dl>

<ul><a name="reform_message">
reform_message</a><pre>
mixed * reform_message(string message,
                       mixed * things)
</pre></br>
This method does all those terrible things with messages and $'s
turning them into real strings.  It is a neat function if somewhat
complicated :)  It was written by Deutha.
<p>
The return array has two elements, the first being the reformed
message and the second being the reformed things array.
<br/><ul>
<li><b>Parameters:</b>
<br/>message - the message to reform
<br/>things - some bonus things to reform it with
<li><b>Returns:</b>
<br/>an array consisting of two elements

</dl>

<ul><a name="reset_colour_map">
reset_colour_map</a><pre>
void reset_colour_map()
</pre></br>
This method resets the colour map information on the player.  THis is
called when some change is made to the terminal data and it needs to
be updated.


<ul><a name="set_allow_friends_earmuffs">
set_allow_friends_earmuffs</a><pre>
void set_allow_friends_earmuffs()
</pre></br>
This method will set the system to allow friends to punch through
earmuffs.
<br/><ul>
<li><b>See also:</b>
<br/><a href="#check_earmuffs">check_earmuffs()</a> and <a href="#query_earmuffs">query_earmuffs()
</a></dl>

<ul><a name="set_cols">
set_cols</a><pre>
void set_cols(int i)
</pre></br>
This method sets the current number of columns the player has set on
their screen.
<br/><ul>
<li><b>Parameters:</b>
<br/>i - the new number of columns
<li><b>See also:</b>
<br/><a href="#query_cols">query_cols()
</a></dl>

<ul><a name="set_looked">
set_looked</a><pre>
void set_looked(object thing)
</pre>
<ul><a name="set_my_colours">
set_my_colours</a><pre>
void set_my_colours(string event_type,
                    string colour)
</pre></br>
set the colour codes for a given event


<ul><a name="set_network_terminal_type">
set_network_terminal_type</a><pre>
int set_network_terminal_type(string name)
</pre></br>
This method handles the responses from the remote site informing
us of their terminal type.
<br/><ul>
<li><b>Parameters:</b>
<br/>name - the terminal type gathered from the remote site
<li><b>Returns:</b>
<br/>0 if the type was not used, 1 if it was
<li><b>See also:</b>
<br/><a href="#set_term_type">set_term_type()</a>, <a href="#query_term_name">query_term_name()</a> and <a href="#query_cur_term">query_cur_term()
</a></dl>

<ul><a name="set_rows">
set_rows</a><pre>
void set_rows(int i)
</pre></br>
This method sets the number of rows on the players screen.
<br/><ul>
<li><b>Parameters:</b>
<br/>i - the new number of rows
<li><b>See also:</b>
<br/><a href="#query_rows">query_rows()
</a></dl>

<ul><a name="set_term_type">
set_term_type</a><pre>
int set_term_type(string str)
</pre></br>
This method sets the current terminal type for the player.  If the type
is network, then the network will be queried for the terminal type
and that will be used.  This is the distiction between the current
terminal type and the terminal name.  The name will be the value that
is set by the player and the current type will be the information
garnered from the network (if the name is network) or the same as the
name.
<br/><ul>
<li><b>Parameters:</b>
<br/>str - the new terminal type
<li><b>Returns:</b>
<br/>1 if the terminal was successful set, 0 if not
<li><b>See also:</b>
<br/><a href="#set_term">set_term()</a>, <a href="#query_term_name">query_term_name()</a> and <a href="#query_cur_term">query_cur_term()
</a></dl>

<ul><a name="show_message">
show_message</a><pre>
void show_message(string message)
</pre></br>
This method shows the message to the player.
<br/><ul>
<li><b>Parameters:</b>
<br/>message - the message to show
<li><b>See also:</b>
<br/><a href="#fit_message">fit_message()
</a></dl>

<ul><a name="some_more">
some_more</a><pre>
int some_more(string word)
</pre>
<ul><a name="terminal_type">
terminal_type</a><pre>
void terminal_type(string type)
</pre></br>
This is a call back generated by the driver internally to tell us about
terminal types.
<br/><ul>
<li><b>Parameters:</b>
<br/>type - the terminal type returned

</dl>

<ul><a name="toggle_earmuffs">
toggle_earmuffs</a><pre>
void toggle_earmuffs()
</pre></br>
This method will change the current value of the earmuffs on the player.
<br/><ul>
<li><b>See also:</b>
<br/><a href="#check_earmuffs">check_earmuffs()</a> and <a href="#query_earmuffs">query_earmuffs()
</a></dl>

<ul><a name="window_size">
window_size</a><pre>
void window_size(int width,
                 int height)
</pre></br>
This is a call back generated by the driver internally to tell us about
the window size of the remote machine.  This information in this is
only used if the terminal is a network type.
<br/><ul>
<li><b>Parameters:</b>
<br/>width - the number of columns
<br/>height - the number of rows

</dl>


<h2>Protected Functions</h2>
These are functions that only objects inheriting the class can access.<p>
<ul><a name="do_inform">
do_inform</a><pre>
nomask int do_inform(string str)
</pre></br>
This is the command to handle the inform stuff.
It does all the turning on/off and stuff things for the informs.
<br/><ul>
<li><b>Parameters:</b>
<br/>str - the informs to listen to
<li><b>See also:</b>
<br/><a href="#event_inform">event_inform()
</a></dl>

<ul><a name="do_tell_his">
do_tell_his</a><pre>
varargs int do_tell_his(string str,
                        int brief)
</pre></br>
This method is the command used to print a players tell history.


<ul><a name="enter_exit_mess">
enter_exit_mess</a><pre>
void enter_exit_mess(string mess,
                     object thing,
                     int going)
</pre></br>
This method is called when an object leaves or arrives in
the room.  It prints out
the message, well adds it to the queue of printable messages.
<br/><ul>
<li><b>Parameters:</b>
<br/>mess - the message to print
<br/>thing - the thing which is leaving/arriving
<br/>going - if it is going

</dl>


<h2>Classes</h2>
These are nice data types for dealing with...  Data!<p>
<ul>
<li><a name="class_event_info">
event_info</a><pre>
class event_info {
                   mapping colour_map;
                   string cur_term;
                   string last_term;
                   object where;
                   object * had_shorts;
                   mixed * eemessages;
                   mixed busy;
}

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

