Tick some things off the TODO list.
[ibg.git] / chapters / 10.rst
index 1f1d4b20d6d00267a02088d1c5997d9d1f208174..0d51d8af1af731678b16581a11c6740dea18f357 100644 (file)
@@ -4,23 +4,19 @@ Captain Fate: take 1
 
 .. epigraph::
 
-   | *S was a sailor, and spent all he got;*
-   | *T was a tinker, and mended a pot.*
+   | |CENTER| *S was a sailor, and spent all he got;*
+   | |CENTER| *T was a tinker, and mended a pot.*
 
 .. only:: html
 
   .. image:: /images/picS.png
      :align: left
 
-.. raw:: latex
-
-   \dropcap{s}
-
-imple though they are, our two games have covered most of the basic
-functionality of Inform, providing enough solid ground underfoot
-for you to start creating simple stories. Even if some of what you've
-encountered doesn't make sense yet, you should be able to browse a
-game's source code and form a general understanding of what is going on.
+|S|\imple though they are, our two games have covered most of the basic
+functionality of Inform, providing enough solid ground underfoot for you to
+start creating simple stories. Even if some of what you've encountered
+doesn't make sense yet, you should be able to browse a game's source code
+and form a general understanding of what is going on.
 
 We'll now design a third game, to show you a few additional features and 
 give you some more sample code to analyse. In "Heidi" we tried to make 
@@ -32,8 +28,7 @@ information in logical didactic chunks, defining some of the objects
 minimally at first and then adding complexity as need arises. Again, 
 this means that you won't be able to compile for testing purposes after 
 the addition of every code snippet, so, if you're typing in the game as 
-you read, you’ll need to check the advice in "Compile-as-you-go" on page 
-255.
+you read, you’ll need to check the advice in :ref:`compile-as-you-go`.
 
 A lot of what goes into this game we have already seen; you may deduce 
 from this that the game design business is fairly repetitious and that 
@@ -46,11 +41,11 @@ super-hero made famous by a childhood of comic books:
 
 .. pull-quote::
 
-       "Impersonating mild mannered John Covarth, assistant help boy at 
-       an Impersonating insignificant drugstore, you suddenly STOP 
-       when your acute hearing deciphers a stray radio call from the 
-       POLICE. There’s some MADMAN attacking the population in Granary 
-       Park! You must change into your Captain FATE costume fast...!"
+       "Impersonating mild mannered John Covarth, assistant help boy at an
+       insignificant drugstore, you suddenly STOP when your acute hearing
+       deciphers a stray radio call from the POLICE. There’s some MADMAN
+       attacking the population in Granary Park! You must change into your
+       Captain FATE costume fast...!"
 
 which won't be so easy to do. In this short example, players will win 
 when they manage to change into their super-hero costume and fly away to 
@@ -444,13 +439,13 @@ something else to describe it:
 
 .. note::
 
-   although the text of our guide calls Benny's establishment a "café" 
-   -- note the acute "e" -- the game itself simplifies this to "cafe". 
-   We do this for clarity, not because Inform doesn't support accented 
-   characters. The *Inform Designer's Manual* explains in detail how to 
-   display these characters in "§1.11 *How text is printed*" and 
-   provides the whole Z-machine character set in Table 2. In our case, 
-   we could have displayed this::
+   Although the text of our guide calls Benny's establishment a "café" --
+   note the acute "e" -- the game itself simplifies this to "cafe".  We do
+   this for clarity, not because Inform doesn't support accented
+   characters. The |DM4| explains in detail how to display these characters
+   in :dm4:`§1.11 <s1.html#s1_11>` "*How text is printed*" and provides the
+   whole Z-machine character set in Table 2. In our case, we could have
+   displayed this::
 
       The town's favourite for a quick snack, Benny's café has a 50's ROCKETSHIP look.
 
@@ -496,20 +491,18 @@ this, we redirect the street's ``n_to`` property thus:
 
   n_to [; <<Enter outside_of_cafe>>; ],
 
-You may think that this is unnecessary madness, but a word to the wise: 
-in a large game, you want action handling going on just in one place 
-when possible, because it will help you to keep track of where things 
-are a-happening if something goes *ploof* (as, believe us, it will; see 
-"Debugging your game" on page 197). You don't need to be a 
-perfectionist, just cautious.
-
-A booth in this kind of situation is an open invitation for the player 
-to step inside and try to change into Captain Fate's costume. We won't 
-let this happen -- the player isn't Clark Kent, after all; later we'll 
-explain how we forbid this action -- and that will force the player to 
-go inside the café, looking for a discreet place to disrobe; but first, 
-let''s freeze John Covarth outside Benny''s and reflect about a 
-fundamental truth.
+You may think that this is unnecessary madness, but a word to the wise: in
+a large game, you want action handling going on just in one place when
+possible, because it will help you to keep track of where things are
+a-happening if something goes *ploof* (as, believe us, it will; see
+:doc:`16`). You don't need to be a perfectionist, just cautious.
+
+A booth in this kind of situation is an open invitation for the player to
+step inside and try to change into Captain Fate's costume. We won't let
+this happen -- the player isn't Clark Kent, after all; later we'll explain
+how we forbid this action -- and that will force the player to go inside
+the café, looking for a discreet place to disrobe; but first, let's freeze
+John Covarth outside Benny's and reflect about a fundamental truth.
 
 A hero is not an ordinary person
 ================================
@@ -527,12 +520,12 @@ rip with a snatch of Wagner, you may intercept the ``Sing`` action in a
 ``before`` property and alter its default, pretty useless behaviour. If 
 not, it's "Your singing is abominable" for you.
 
-All actions, useful or not, have a stock of messages associated with 
-them (the messages are held in the ``english.h`` library file and listed 
-in Appendix 4 of the *Inform Designer's Manual*). We have already seen 
-one way of altering the player character's description -- "As good 
-looking as ever" -- in "William Tell", but the other defaults may also 
-be redefined to suit your tastes and circumstantial needs.
+All actions, useful or not, have a stock of messages associated with them
+(the messages are held in the ``english.h`` library file and listed in
+:dm4:`Appendix 4 <sa4.html>` of the |DM4|). We have already seen one way of
+altering the player character's description -- "As good looking as ever" --
+in "William Tell", but the other defaults may also be redefined to suit
+your tastes and circumstantial needs.
 
 John Covarth, aka Captain Fate, could happily settle for most of these 
 default messages, but we deem it worthwhile to give him some customised 
@@ -646,20 +639,22 @@ opt for the not-so-hot approach for some overriding reason. Don't feel
 discouraged; choices like this become more common (and easier) as your 
 experience grows.
 
-.. todo::
+.. Ugh.  Ghastly, but it does the job.
+
+.. |WNL_LATEX| replace:: :latex:`\emph{\textbf{whatever new look}}`
 
-    That "whatever new look" below needs to be italicized and bolded for LaTeX
+.. |WNL_HTML|  replace:: :html:`<strong><em>whatever new look</em></strong>`
 
 .. note::
 
-   going back to our example, an alternative approach would be to set 
-   the variable ``player.description`` in the ``Initialise`` routine (as we 
-   did with "William Tell") to the "ordinary clothes" string, and then 
-   later change it as the need arises. It is a variable, after all, and you 
-   can alter its value with another statement like ``player.description =`` 
-   *whatever new look* anywhere in your code. This alternative solution 
-   might be better if we intended changing the description of the player 
-   many times through the game. Since we plan to have only two states, the 
+   Going back to our example, an alternative approach would be to set the
+   variable ``player.description`` in the ``Initialise`` routine (as we did
+   with "William Tell") to the "ordinary clothes" string, and then later
+   change it as the need arises. It is a variable, after all, and you can
+   alter its value with another statement like ``player.description =``
+   |WNL_LATEX| |WNL_HTML| anywhere in your code. This alternative solution
+   might be better if we intended changing the description of the player
+   many times through the game. Since we plan to have only two states, the
    ``LibraryMessages`` approach will do just fine.
 
 A final warning: as we explained when extending the standard verb 
@@ -668,7 +663,7 @@ the default messages, but that wouldn't be a sound practice, because
 your library file will probably not be right for the next game. Use of 
 the ``LibraryMessages`` object is strongly advised.
 
-If you're typing in the game, you'll probably want to read the brief 
-section on "Compile-as-you-go" on page 255 prior to performing a test 
-compile. Once everything's correct, it’s time that our hero entered that 
-enticing café.
+If you're typing in the game, you'll probably want to read the brief
+section on :ref:`compile-as-you-go` prior to performing a test compile.
+Once everything's correct, it’s time that our hero entered that enticing
+café.