sensible to write a routine to do the job. Which we'll do shortly -- but
first, a general introduction to working with routines.
+.. _working-with-routines:
+
A diversion: working with routines
==================================
better approach might be to rework our ``BeenHereBefore`` routine so that
it does both jobs, but we somehow need to tell it which variable's value is
to be checked. That's easy: we design the routine so that it expects an
-**argument**::
+:term:`argument`::
[ BeenToBefore this_room;
if (this_room has visited) return true;
which it knows as ``this_room``, and which it then uses to test for the
``visited`` attribute. On the second line we supply ``location`` as the
argument, but the routine just sees another value in its ``this_room``
-variable. ``this_room`` is called a **local variable** of the
+variable. ``this_room`` is called a :term:`local variable` of the
``BeenToBefore`` routine, one that must be set to a suitable value each
time that the routine is called. In this example routine, the value needs
to be a room object; we could also check an explicit named room::
``rfalse`` statement, or by the the ``]`` marking the routine's end (in
which case the default STEF rule applies: Standalone routines return
True, Embedded routines return False). We gave this example of an
- embedded routine in "Adding some props" on page 81. The ``return
- false`` statement is redundant: we could remove it without affecting the
- routine's behaviour, because the ``]`` acts like a ``return false``::
+ embedded routine in :ref:`adding-props`. The ``return false`` statement
+ is redundant: we could remove it without affecting the routine's
+ behaviour, because the ``]`` acts like a ``return false``::
found_in [;
if (location == street or below_square or south_square or
========================= ===========================
For full details on which library property values can be embedded routines,
-and which return values are significant, see "Object properties" on page
-266 and Appendix §A2 of the *Inform Designer's Manual*.
+and which return values are significant, see :ref:`object-props` and
+Appendix §A2 of the *Inform Designer's Manual*.
Return to the marketplace
=========================
a whole load of new nouns and adjectives to the game's dictionary, but no
verbs. That's the final task.
+.. _verbs:
+
Verbs, verbs, verbs
===================
anything to say".
That's the end of our little fable; you'll find a transcript and the full
-source in "William Tell" story on page 219. And now, it's time to meet --
-Captain Fate!
+source in :doc:`/appendices/c`. And now, it's time to meet -- Captain
+Fate!