Address more of the TODO items.
[ibg.git] / chapters / 09.rst
index ac5ccc8958036e58ac3d21c291e3ec027f45d6ca..d03ea32b94ccb9fe9efcee09afad5c5edf362198 100644 (file)
@@ -23,7 +23,11 @@ The marketplace
 ===============
 
 The ``marketplace`` room is unremarkable, and the ``tree`` growing there
 ===============
 
 The ``marketplace`` room is unremarkable, and the ``tree`` growing there
-has only one feature of interest::
+has only one feature of interest:
+
+.. include:: /config/typethis.rst
+
+::
 
    Room      marketplace "Marketplace near the square"
      with    description
 
    Room      marketplace "Marketplace near the square"
      with    description
@@ -270,7 +274,11 @@ want to check on the characteristics of an object, possibly then displaying
 a message.  We don't know exactly *which* object is to be checked, so we
 need to write our routine in a generalised way, capable of checking any
 object which we choose; that is, we'll supply the object to be checked as
 a message.  We don't know exactly *which* object is to be checked, so we
 need to write our routine in a generalised way, capable of checking any
 object which we choose; that is, we'll supply the object to be checked as
-an argument.  Here's the routine::
+an argument.  Here's the routine:
+
+.. include:: /config/typethis.rst
+
+::
 
      [ BowOrArrow o;
          if (o == bow or nothing || o ofclass Arrow) return true;
 
      [ BowOrArrow o;
          if (o == bow or nothing || o ofclass Arrow) return true;
@@ -346,7 +354,12 @@ to 3 -- the "You have screwed up" ending, display a message, and be done.
 Gessler the governor
 ====================
 
 Gessler the governor
 ====================
 
-There's nothing in Gessler's definition that we haven't already encountered::
+There's nothing in Gessler's definition that we haven't already
+encountered:
+
+.. include:: /config/typethis.rst
+
+::
 
    NPC      governor "governor" marketplace
      with   name 'governor' 'vogt' 'Hermann' 'Gessler',
 
    NPC      governor "governor" marketplace
      with   name 'governor' 'vogt' 'Hermann' 'Gessler',
@@ -393,7 +406,11 @@ Walter and the apple
 ====================
 
 Since he's been with you throughout, it's really about time we defined
 ====================
 
 Since he's been with you throughout, it's really about time we defined
-Walter::
+Walter:
+
+.. include:: /config/typethis.rst
+
+::
 
   NPC      son "your son"
     with   name 'son' 'your' 'boy' 'lad' 'Walter',
 
   NPC      son "your son"
     with   name 'son' 'your' 'boy' 'lad' 'Walter',
@@ -503,7 +520,11 @@ It's saying:
 
 The apple's moment of glory has arrived!  Its :prop:`before` property
 responds to the :act:`FireAt` action by setting :var:`deadflag` to 2.  When
 
 The apple's moment of glory has arrived!  Its :prop:`before` property
 responds to the :act:`FireAt` action by setting :var:`deadflag` to 2.  When
-that happens, the game is over; the player has won. ::
+that happens, the game is over; the player has won.
+
+.. include:: /config/typethis.rst
+
+::
 
   Object   apple "apple"
     with   name 'apple',
 
   Object   apple "apple"
     with   name 'apple',
@@ -571,13 +592,21 @@ might be tempted to try to UNTIE WALTER; unlikely, but as we've said
 before, anticipating the improbable is part of the craft of IF.  For this,
 and for all new actions, two things are required.  We need a grammar
 definition, spelling out the structure of the English sentences which we're
 before, anticipating the improbable is part of the craft of IF.  For this,
 and for all new actions, two things are required.  We need a grammar
 definition, spelling out the structure of the English sentences which we're
-prepared to accept::
+prepared to accept:
+
+.. include:: /config/typethis.rst
+
+::
 
       Verb 'untie' 'unfasten' 'unfix' 'free' 'release'
           * noun                          -> Untie;
 
 and we need a routine to handle the action in the default situation (where
 
       Verb 'untie' 'unfasten' 'unfix' 'free' 'release'
           * noun                          -> Untie;
 
 and we need a routine to handle the action in the default situation (where
-the action isn't intercepted by an object's :prop:`before` property). ::
+the action isn't intercepted by an object's :prop:`before` property).
+
+.. include:: /config/typethis.rst
+
+::
 
       [ UntieSub; print_ret "You really shouldn't try that."; ];
 
 
       [ UntieSub; print_ret "You really shouldn't try that."; ];
 
@@ -667,7 +696,11 @@ this game, so we always generate a refusal of some sort.
    pair: Salute; library action
 
 The next action is :act:`Salute`, provided in case Wilhelm chooses to defer
    pair: Salute; library action
 
 The next action is :act:`Salute`, provided in case Wilhelm chooses to defer
-to the hat on the pole.  Here's the default action handler::
+to the hat on the pole.  Here's the default action handler:
+
+.. include:: /config/typethis.rst
+
+::
 
      [ SaluteSub;
          if (noun has animate) print_ret (The) noun, " acknowledges you.";
 
      [ SaluteSub;
          if (noun has animate) print_ret (The) noun, " acknowledges you.";
@@ -678,7 +711,11 @@ You'll notice that this is slightly more intelligent than our :act:`Untie`
 handler, since it produces different responses depending on whether the
 object being saluted -- stored in the :var:`noun` variable -- is
 :attr:`animate` or not.  But it's basically doing the same job.  And here's
 handler, since it produces different responses depending on whether the
 object being saluted -- stored in the :var:`noun` variable -- is
 :attr:`animate` or not.  But it's basically doing the same job.  And here's
-the grammar::
+the grammar:
+
+.. include:: /config/typethis.rst
+
+::
 
      Verb 'bow' 'nod' 'kowtow' 'genuflect'
          * 'at'/'to'/'towards' noun      -> Salute;
 
      Verb 'bow' 'nod' 'kowtow' 'genuflect'
          * 'at'/'to'/'towards' noun      -> Salute;
@@ -733,7 +770,11 @@ library, and Inform's rule is that a verb can appear in only one ``Verb``
 definition.  The wrong solution: edit ``Grammar.h`` to *physically* add
 lines to the existing definitions (it's almost never a good idea to make
 changes to the standard library files).  The right solution: use ``Extend``
 definition.  The wrong solution: edit ``Grammar.h`` to *physically* add
 lines to the existing definitions (it's almost never a good idea to make
 changes to the standard library files).  The right solution: use ``Extend``
-to *logically* add those lines.  If we write this in our source file::
+to *logically* add those lines.  If we write this in our source file:
+
+.. include:: /config/typethis.rst
+
+::
 
     Extend 'give'
         * 'homage' 'to' noun              -> Salute;
 
     Extend 'give'
         * 'homage' 'to' noun              -> Salute;
@@ -762,7 +803,11 @@ players are usually too busy trying to figure out *logical* possibilities.)
 
 .. rubric:: FireAt
 
 
 .. rubric:: FireAt
 
-As usual, we'll first show you the default handler for this action::
+As usual, we'll first show you the default handler for this action:
+
+.. include:: /config/typethis.rst
+
+::
 
      [ FireAtSub;
          if (noun == nothing)
 
      [ FireAtSub;
          if (noun == nothing)
@@ -779,7 +824,11 @@ As usual, we'll first show you the default handler for this action::
    design practice to reword the message as a statement rather than a
    question.
 
    design practice to reword the message as a statement rather than a
    question.
 
-Here is the associated grammar::
+Here is the associated grammar:
+
+.. include:: /config/typethis.rst
+
+::
 
      Verb 'fire' 'shoot' 'aim'
          *                                ->   FireAt
 
      Verb 'fire' 'shoot' 'aim'
          *                                ->   FireAt
@@ -848,7 +897,11 @@ cases.
    pair: FireAt; library action
 
 Before leaving the :act:`FireAt` action, we'll add one more piece of
    pair: FireAt; library action
 
 Before leaving the :act:`FireAt` action, we'll add one more piece of
-grammar::
+grammar:
+
+.. include:: /config/typethis.rst
+
+::
 
       Extend 'attack' replace
           * noun                          -> FireAt;
 
       Extend 'attack' replace
           * noun                          -> FireAt;
@@ -889,7 +942,11 @@ handler is closely based on ``TellSub`` (defined in library file
    all three checks succeed then ``TalkSub`` need do nothing more; if one
    or more of them fails then ``TalkSub`` simply...
 
    all three checks succeed then ``TalkSub`` need do nothing more; if one
    or more of them fails then ``TalkSub`` simply...
 
-#. Displays a general "nothing to say" refusal to talk. ::
+#. Displays a general "nothing to say" refusal to talk.
+
+   .. include:: /config/typethis.rst
+
+   ::
 
      [ TalkSub;
          if (noun == player) print_ret "Nothing you hear surprises you.";
 
      [ TalkSub;
          if (noun == player) print_ret "Nothing you hear surprises you.";