[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/music/instrument_inherit.c</h2>
A musical instrument inherit.  Has basic functions to allow instruments
to be played, tuned, strummed and used to perform a solo.  Also allows
for custom messages and has a music event so NPCs and rooms can respond
to the instrument being played.  Use "/obj/music/instrument" for holdable
instruments, others should inherit this and another suitable object inherit,
and should be set as non-holdable using the function. The help file and
aliases will also need to be added if suitable.<p>Written by Kaylar
<p>Started February 2004, changed in June 2005 to not inherit anything,
 changed in May 2006 to allow more creative messages.<h2>Includes</h2>
This class includes the following files <a href="include.tasks.h.shtml">/include/tasks.h</a><h2>Method index</h2>
<ul>
<li><a href="#basic_checks">basic_checks</a>(object, string)<li><a href="#change_message">change_message</a>(mixed, object)<li><a href="#do_msp_event">do_msp_event</a>(object, object, int)<li><a href="#do_music_play">do_music_play</a>(object)<br/>
The function used to play the instrument with sheet music, the messages
are set in the music books rather than the instrument.
<li><a href="#do_perform">do_perform</a>(object *, string, string, mixed *, string)<br/>
The function used to perform a solo on the instrument.
<li><a href="#do_play">do_play</a>(string)<br/>
The function used to play the instrument.
<li><a href="#do_serenade">do_serenade</a>(object, string)<br/>
The function used to serenade with the instrument.
<li><a href="#do_strum">do_strum</a>(object *, string, string, mixed *, string)<br/>
The function used to strum the instrument.
<li><a href="#do_the_event">do_the_event</a>(object, string, string, string, string)<br/>
The function that creates the event_music event.
<li><a href="#do_tune">do_tune</a>(object *, string, string, mixed *, string)<br/>
The function used to tune the instrument.
<li><a href="#event_music">event_music</a>(object, object, string, string, string, string)<br/>
Called on the room and anyone in it when a musical instrument is played
<li><a href="#query_instrument">query_instrument</a>()<li><a href="#query_instrument_difficulty">query_instrument_difficulty</a>()<br/>
This function gives how difficult an instrument is to play.
<li><a href="#query_instrument_type">query_instrument_type</a>()<br/>
This function gives the type of instrument it is.
<li><a href="#query_tuned">query_tuned</a>()<br/>
This function returns if the instrument is tuned or not.
<li><a href="#set_implement">set_implement</a>(string, string)<br/>
This sets a name and property associated with an implement needed to play
an instrument.
<li><a href="#set_instrument_type">set_instrument_type</a>(string, string, int, int, int)<br/>
This sets the type of instrument it is and determines default messages and
the skill used.
<li><a href="#set_not_holdable">set_not_holdable</a>(int)<br/>
This sets whether the instrument does not need to be held to be played.
<li><a href="#set_perform_mess">set_perform_mess</a>(string *)<br/>
Sets custom messages to be used when a solo is performed.
<li><a href="#set_perform_tm_mess">set_perform_tm_mess</a>(string)<br/>
This sets the message seen by players when they TM from performing a solo.
<li><a href="#set_play_mess">set_play_mess</a>(mixed)<br/>
Sets custom messages to be used when the instrument is played.
<li><a href="#set_play_tm_mess">set_play_tm_mess</a>(string)<br/>
This sets the message seen by players when they TM from playing.
<li><a href="#set_serenade_mess">set_serenade_mess</a>(string *)<br/>
Sets custom messages to be used when the instrument is used to serenade
with.
<li><a href="#set_serenade_tm_mess">set_serenade_tm_mess</a>(string)<br/>
This sets the message seen by players when they TM from serenading.
<li><a href="#set_strum_mess">set_strum_mess</a>(string *)<br/>
Sets custom messages to be used when an instrument is strummed.
<li><a href="#set_strum_tm_mess">set_strum_tm_mess</a>(string)<br/>
This sets the message seen by players when they TM from strumming.
<li><a href="#set_tune_tm_mess">set_tune_tm_mess</a>(string)<br/>
This sets the message seen by players when they TM from tuning.
<li><a href="#set_tuned">set_tuned</a>(int)<br/>
A function used to set whether the instrument is tuned or not
</ul>
<h2>Public Functions</h2>
These are functions that everyone can access.<p>
<dl>
<dt class="autodocfuncname"><a name="basic_checks">
basic_checks</a><pre class="autodocfuncdef">
mixed basic_checks(object player,
                   string verb)
</pre>
<dt class="autodocfuncname"><a name="change_message">
change_message</a><pre class="autodocfuncdef">
mixed change_message(mixed msg,
                     object serenadee)
</pre>
<dt class="autodocfuncname"><a name="do_msp_event">
do_msp_event</a><pre class="autodocfuncdef">
void do_msp_event(object player,
                  object sheet_music,
                  int success)
</pre>
<dt class="autodocfuncname"><a name="do_music_play">
do_music_play</a><pre class="autodocfuncdef">
int do_music_play(object sheet_music)
</pre><dd><br />
The function used to play the instrument with sheet music, the messages
are set in the music books rather than the instrument.
<br />

<dt class="autodocfuncname"><a name="do_perform">
do_perform</a><pre class="autodocfuncdef">
int do_perform(object * indirect_obs,
               string indir_match,
               string dir_match,
               mixed * args,
               string pattern)
</pre><dd><br />
The function used to perform a solo on the instrument.  Custom messages
can be set.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#set_perform_mess">set_perform_mess()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_play">
do_play</a><pre class="autodocfuncdef">
varargs int do_play(string play_str)
</pre><dd><br />
The function used to play the instrument.  Custom messages can be set
for this and players can add their own play string.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#set_play_mess">set_play_mess()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_serenade">
do_serenade</a><pre class="autodocfuncdef">
varargs int do_serenade(object player,
                        string serenade_str)
</pre><dd><br />
The function used to serenade with the instrument.  Custom messages can be
set for this and players can add their own string.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#set_play_mess">set_play_mess()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_strum">
do_strum</a><pre class="autodocfuncdef">
int do_strum(object * indirect_obs,
             string indir_match,
             string dir_match,
             mixed * args,
             string pattern)
</pre><dd><br />
The function used to strum the instrument.  Custom messages can be set
for this.<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#set_strum_mess">set_strum_mess()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="do_the_event">
do_the_event</a><pre class="autodocfuncdef">
void do_the_event(object player,
                  string command,
                  string result,
                  string degree,
                  string message)
</pre><dd><br />
The function that creates the event_music event.
<br />

<dt class="autodocfuncname"><a name="do_tune">
do_tune</a><pre class="autodocfuncdef">
int do_tune(object * indirect_obs,
            string indir_match,
            string dir_match,
            mixed * args,
            string pattern)
</pre><dd><br />
The function used to tune the instrument.
<br />

<dt class="autodocfuncname"><a name="event_music">
event_music</a><pre class="autodocfuncdef">
void event_music(object instrument,
                 object player,
                 string command,
                 string result,
                 string degree,
                 string message)
</pre><dd><br />
Called on the room and anyone in it when a musical instrument is played<br />
<br /><dl>
<dd><b>Parameters:</b><br />
instrument - the instrument being played<br />
player - the player playing the instrument<br />
command - the command used to cause the event, such as "play",
"serenade", "strum" or "perform"<br />
result - "succeed" if the player passed the skillcheck, "fail" if
 failed<br />
degree - the degree of success or failure, either "marginal",
 "normal", "exceptional", "critical" or "no_degrees"<br />
message - the (custom or default) message. Probably not overly useful
 since the default messages will include the $N, $p and such.<br />
<br />
<dd><b>Example:</b>
<br/><pre>void event_music( object instrument, object player, string command,
  string result, string degree, string message ) {

  if( result == "succeed" ) {
    tell_room( environment( this_object() ), this_object()->the_short()+
      " starts to sway back and forth as though in a trance as "
      +player->query_cap_name()+ " plays " +player->query_posessive()+
      " " +instrument->query_short()+ ".\n", player );
    tell_object( player, this_object()->the_short()+ " starts to sway "
      "back and forth seemingly hypnotised as you play your "
      +instrument->query_short()+ ".\n" );
    return;
  }

  return;

}
</pre><br /></dl>

<dt class="autodocfuncname"><a name="query_instrument">
query_instrument</a><pre class="autodocfuncdef">
int query_instrument()
</pre>
<dt class="autodocfuncname"><a name="query_instrument_difficulty">
query_instrument_difficulty</a><pre class="autodocfuncdef">
string query_instrument_difficulty()
</pre><dd><br />
This function gives how difficult an instrument is to play.  This is
difficulty dependent on type, so both a recorder and a simple drum
would be "easy" despite the recorder being harder to play than the drum<br />
<br /><dl>
<dd><b>Returns:</b>
<br />How difficult the instrument is to play; easy, medium, difficult or
 expert<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_instrument_type">set_instrument_type()</a> and <a href="#query_instrument_type">query_instrument_type()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_instrument_type">
query_instrument_type</a><pre class="autodocfuncdef">
string query_instrument_type()
</pre><dd><br />
This function gives the type of instrument it is.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />The type of instrument; stringed, wind, percussion or keyboard<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_instrument_type">set_instrument_type()</a> and <a href="#query_instrument_difficulty">query_instrument_difficulty()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="query_tuned">
query_tuned</a><pre class="autodocfuncdef">
int query_tuned()
</pre><dd><br />
This function returns if the instrument is tuned or not.<br />
<br /><dl>
<dd><b>Returns:</b>
<br />0 if not tuned, 1 if tuned, -1 if the instrument is not tuneable.<br /><br />
<dd><b>See also:</b>
<br /><a href="#set_tuned">set_tuned()
</a><br /><br /><br /></dl>

<dt class="autodocfuncname"><a name="set_implement">
set_implement</a><pre class="autodocfuncdef">
void set_implement(string name,
                   string property)
</pre><dd><br />
This sets a name and property associated with an implement needed to play
an instrument. For example, violin bows, drumsticks and plectrums. It must
be holdable, so inheriting /obj/implement is probably best<br />
<br /><dl>
<dd><b>Parameters:</b><br />
name - The name of the implement which will be shown in fail messages<br />
property - The property given to the implement using add_property,
 this is what will be used in any checks<br />
<br />
<dd><b>Example:</b>
<br/><pre>set_implement( "violin bow", "violin_bow" );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_instrument_type">
set_instrument_type</a><pre class="autodocfuncdef">
void set_instrument_type(string type,
                         string difficulty,
                         int tune,
                         int perform,
                         int strum)
</pre><dd><br />
This sets the type of instrument it is and determines default messages and
the skill used.  This must be set before any custom messages can be set.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
type - The type of instrument with the choices of; percussion,
 wind, stringed or keyboard<br />
difficulty - The difficulty of the instrument with choices of; easy,
 medium, difficult or expert. Note: this is difficulty dependent on type,
 that is, a recorder and a simple drum would both be given "easy" even
 though it is harder to play a recorder<br />
tune - Set to 1 if it can be tuned, 0 if not<br />
perform - Set to 1 if a solo can be played on it, 0 if not<br />
strum - Set to 1 if it can be strummed, 0 if not (stringed only)<br />
<br />
<dd><b>See also:</b>
<br /><a href="#set_play_mess">set_play_mess()</a>, <a href="#set_perform_mess">set_perform_mess()</a> and <a href="#set_strum_mess">set_strum_mess()

</a><br /><br /><dd><b>Example:</b>
<br/><pre>set_instrument_type( "wind", "easy", 1, 1, 0 );</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_not_holdable">
set_not_holdable</a><pre class="autodocfuncdef">
void set_not_holdable(int i)
</pre><dd><br />
This sets whether the instrument does not need to be held to be played. This
can be used for large instruments such as pianos, organs etc.  Such
instruments should inherit something else such as /std/object.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
i - This should be set to 1 if the instrument does not need to be
 held.
<br />
<br />
<br /></dl>

<dt class="autodocfuncname"><a name="set_perform_mess">
set_perform_mess</a><pre class="autodocfuncdef">
void set_perform_mess(string * messages)
</pre><dd><br />
Sets custom messages to be used when a solo is performed.  If not set the
default messages are used.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
*messages - An array of eight messages.  Firstly successes from
 marginal to critical then failures from marginal to critical.  You should
 format it like an add_succeeded_mess with the usual dollar thingies and
 a "\n" on the end.
 You can use $instrument for the instrument short, $a_instrument for the
 a_short, $poss_instrument for the possessive short and $the_instrument
 for the the_short.
 All eight messages need to be included and if you use a two member array
 for a message, the first string will be shown to the player, and the second
 to the room.<br />
<br />
<dd><b>See also:</b>
<br /><a href="#set_instrument_type">set_instrument_type()</a>, <a href="#set_play_mess">set_play_mess()</a>, <a href="#set_serenade_mess">set_serenade_mess()</a> and <a href="#set_strum_mess">set_strum_mess()
</a><br /><br /><dd><b>Example:</b>
<br/><pre> set_perform_mess( ({
   "$N perform$s a loud solo on $poss_instrument.\n",
   "$N play$s an upbeat solo on $poss_instrument.\n",
   "$N skillfully perform$s a funky solo on $poss_instrument.\n",
   "Fingers moving so quickly that they are a blur, $N perform$s a really "
     "cool solo on $poss_instrument.\n",
   "$N perform$s a somewhat boring solo on $poss_instrument.\n",
   "With no real skill, $N play$s an awful solo on $poss_instrument.\n",
   ({ "You perform a solo on $poss_instrument.\n",
      "$N perform$s an unhip solo on $poss_instrument.  What a rectangular "
       "thynge.\n" }),
   "$N play$s a horrible clash of notes on $poss_instrument.\n"
 }) );</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_perform_tm_mess">
set_perform_tm_mess</a><pre class="autodocfuncdef">
void set_perform_tm_mess(string str)
</pre><dd><br />
This sets the message seen by players when they TM from performing a solo.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
str - The message, without the colour codes and \n.
 You can use $instrument for the instrument short, $a_instrument for the
 a_short, $poss_instrument for the possessive short and $the_instrument
 for the the_short.<br />
<br />
<dd><b>Example:</b>
<br/><pre>set_perform_tm_mess( "You feel you've learnt something about "
 "performing a solo." );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_play_mess">
set_play_mess</a><pre class="autodocfuncdef">
void set_play_mess(mixed messages)
</pre><dd><br />
Sets custom messages to be used when the instrument is played. If not set
the default messages are used.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
*messages - An array of eight messages.  Firstly successes from
 marginal to critical then failures from marginal to critical.  You should
 format it like an add_succeeded_mess with the usual dollar thingies and
 a "\n" on the end.
 You can use $instrument for the instrument short, $a_instrument for the
 a_short, $poss_instrument for the possessive short and $the_instrument
 for the the_short.
 All eight messages need to be included and if you use a two member array
 for a message, the first string will be shown to the player, and the second
 to the room.<br />
<br />
<dd><b>See also:</b>
<br /><a href="#set_instrument_type">set_instrument_type()</a>, <a href="#set_serenade_mess">set_serenade_mess()</a>, <a href="#set_perform_mess">set_perform_mess()</a> and <a href="#set_strum_mess">set_strum_mess()
</a><br /><br /><dd><b>Example:</b>
<br/><pre> set_play_mess( ({
   "$N play$s a plain tune on $poss_instrument.\n",
   "Playing softly, $N create$s a haunting melody on $poss_instrument.\n",
   ({ "A delicate melody comes from $poss_instrument as you skillfully "
       "pluck the strings.\n",
      "A delicate melody comes from $N's instrument as $r skillfully "
       "pluck$s the strings.\n" }),
   "A beautiful tune comes from $the_instrument as $N delicately pluck$s "
     "the strings.\n",
   "$N play$s a dull melody on $poss_instrument.\n",
   "$N hastily play$s an awful tune on $poss_instrument.\n",
   "Carelessly plucking the strings, $N create$s an ear-shattering melody "
     "on $poss_instrument.\n",
   $N play$s something on $poss_instrument that does not really resemble "
     "music at all.\n"
 }) );</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_play_tm_mess">
set_play_tm_mess</a><pre class="autodocfuncdef">
void set_play_tm_mess(string str)
</pre><dd><br />
This sets the message seen by players when they TM from playing.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
str - The message, without the colour codes and \n.
 You can use $instrument for the instrument short, $a_instrument for the
 a_short, $poss_instrument for the possessive short and $the_instrument
 for the the_short.<br />
<br />
<dd><b>Example:</b>
<br/><pre>set_play_tm_mess( "You learn something new about blowing your "
 "own trumpet." );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_serenade_mess">
set_serenade_mess</a><pre class="autodocfuncdef">
void set_serenade_mess(string * messages)
</pre><dd><br />
Sets custom messages to be used when the instrument is used to serenade
with. If not set the default messages are used.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
*messages - An array of eight messages.  Firstly successes from
 marginal to critical then failures from marginal to critical.  You should
 format it like an add_succeeded_mess with the usual dollar thingies and
 a "\n" on the end.
 You can use $instrument for the instrument short, $a_instrument for the
 a_short, $poss_instrument for the possessive short and $the_instrument
 for the the_short.
 $serenadee can be used for the the_short of the person being serenaded,
 $serenadee_pos for the possesive, $serenade_pro for the pronoun and
 $serenadee_obj for the objective. Note that the last three will look odd
 to the serenadee if used in a room message.
 All eight messages need to be included and if you use a two member array
 for a message, the first string will be shown to the player, and the second
 to the room.<br />
<br />
<dd><b>See also:</b>
<br /><a href="#set_instrument_type">set_instrument_type()</a>, <a href="#set_play_mess">set_play_mess()</a>, <a href="#set_perform_mess">set_perform_mess()</a> and <a href="#set_strum_mess">set_strum_mess()
</a><br /><br /><dd><b>Example:</b>
<br/><pre> set_serenade_mess( ({
   "$N play$s a simple tune on $poss_instrument for $serenadee.\n",
   "$N skillfully serenade$s $serenadee with a romantic tune on "
     "$poss_instrument.\n",
   "$N serenade$s $serenadee with a tune about forbidden love on "
     "$poss_instrument.\n",
   "Seductively plucking the strings of $poss_instrument, $N serenade$s "
     "$serenadee with a beautifully romantic melody.\n",
   "$N serenade$s $serenadee with an awful tune on $poss_instrument.\n",
   "$N play$s an insulting tune for $serenadee on $poss_instrument.\n",
   ({ "You serenade $serenadee with $poss_instrument, $serenadee_pro "
       "does not look very impressed.\n",
      "$N make$s a horrible noise on $poss_instrument, apparently "
       "serenading $serenadee.\n" }),
   "$N serenade$s $serenadee with a collection of rude noises on "
      "$poss_instrument.  Not very romantic.\n"
 }) );</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_serenade_tm_mess">
set_serenade_tm_mess</a><pre class="autodocfuncdef">
void set_serenade_tm_mess(string str)
</pre><dd><br />
This sets the message seen by players when they TM from serenading.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
str - The message, without the colour codes and \n.
 You can use $instrument for the instrument short, $a_instrument for the
 a_short, $poss_instrument for the possessive short and $the_instrument
 for the the_short.
 $serenadee can be used for the the_short of the person being serenaded,
 $serenadee_pos for the possesive, $serenade_pro for the pronoun and
 $serenadee_obj for the objective. <br />
<br />
<dd><b>Example:</b>
<br/><pre>set_serenade_tm_mess( "You learn something new about wooing "
 "$serenadee with $poss_instrument." );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_strum_mess">
set_strum_mess</a><pre class="autodocfuncdef">
void set_strum_mess(string * messages)
</pre><dd><br />
Sets custom messages to be used when an instrument is strummed.  If not
set the default messages are used. Note: only stringed instruments can
be strummed.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
*messages - An array of eight messages.  Firstly successes from
 marginal to critical then failures from marginal to critical.  You should
 format it like an add_succeeded_mess with the usual dollar thingies and
 a "\n" on the end.
 You can use $instrument for the instrument short, $a_instrument for the
 a_short, $poss_instrument for the possessive short and $the_instrument
 for the the_short.
 All eight messages need to be included and if you use a two member array
 for a message, the first string will be shown to the player, and the second
 to the room.<br />
<br />
<dd><b>See also:</b>
<br /><a href="#set_instrument_type">set_instrument_type()</a>, <a href="#set_play_mess">set_play_mess()</a>, <a href="#set_serenade_mess">set_serenade_mess()</a> and <a href="#set_perform_mess">set_perform_mess()
</a><br /><br /><dd><b>Example:</b>
<br/><pre> set_strum_mess( ({
   "$N strum$s the chords to a simple dance tune on $poss_instrument.\n",
   "$N skillfully strum$s a popular folksong on $poss_instrument.\n",
   "$N play$s a Wizard's Staff has a Knob on the end, strumming skillfully "
     "on $poss_instrument.\n",
   "$N energetically strum$s the chords to a song with Rocks in it on "
     "$poss_instrument.\n",
   "$N strum$s a few boring chords on $poss_instrument.\n",
   "$N carelessly strum$s the chords to an awful sailor's tune on "
     "$poss_instrument.\n",
   "$N strum$s mindlessly at the strings of $the_instrument.\n",
   ({ "You strum the chords to a folksong about turnips on "
       "$poss_instrument, a tear in your eye.\n",
      "$N strum$s the chords to a mind-numbing folksong about "
       "turnips on $poss_instrument.\n" })
 }) );</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_strum_tm_mess">
set_strum_tm_mess</a><pre class="autodocfuncdef">
void set_strum_tm_mess(string str)
</pre><dd><br />
This sets the message seen by players when they TM from strumming.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
str - The message, without the colour codes and \n.
 You can use $instrument for the instrument short, $a_instrument for the
 a_short, $poss_instrument for the possessive short and $the_instrument
 for the the_short.<br />
<br />
<dd><b>Example:</b>
<br/><pre>set_strum_tm_mess( "You learn something new strumming "
 "$poss_instrument." );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_tune_tm_mess">
set_tune_tm_mess</a><pre class="autodocfuncdef">
void set_tune_tm_mess(string str)
</pre><dd><br />
This sets the message seen by players when they TM from tuning.<br />
<br /><dl>
<dd><b>Parameters:</b><br />
str - The message, without the colour codes and \n.
 You can use $instrument for the instrument short, $a_instrument for the
 a_short, $poss_instrument for the possessive short and $the_instrument
 for the the_short.<br />
<br />
<dd><b>Example:</b>
<br/><pre>set_tune_tm_mess( "You learn something new by fiddling with "
 "$poss_instrument." );
</pre><br /></dl>

<dt class="autodocfuncname"><a name="set_tuned">
set_tuned</a><pre class="autodocfuncdef">
void set_tuned(int value)
</pre><dd><br />
A function used to set whether the instrument is tuned or not<br />
<br /><dl>
<dd><b>See also:</b>
<br /><a href="#query_tuned">query_tuned()
</a><br /><br /><br /></dl>

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

