Use pagestyle for standard page headings.
[ibg.git] / appendices / f.rst
index db6f55d3751f4c4b18c0cbb26f87e181b6eed238..c9a90e9145b06d9e3cf03d732de24215dd75130f 100644 (file)
@@ -2,6 +2,10 @@
  Appendix F -- Inform library
 ==============================
 
+.. |ADD| replace:: **+**
+
+.. The ⊕ symbol doesn't work in LaTeX.
+
 .. default-role:: samp
 
 .. only:: html
@@ -29,6 +33,8 @@ Library objects
   If defined (between Includes of `Parser` and `VerbLib`), changes standard
   library messages:
 
+  .. only:: html
+
     | `Object LibraryMessages`
     |   `with before [;`
     |        `{action}: "{string}";`
@@ -42,6 +48,11 @@ Library objects
     |            `...`
     |        `];`
 
+  .. todo::
+
+     Get this to work properly in LaTeX.  Currently get a 'too deeply
+     nested' error.
+
 `selfobj`
   The default player object.  Avoid: use instead the `player` variable,
   which usually refers to `selfobj`.
@@ -144,7 +155,8 @@ Library variables
   Used by `invent` and `list_together` properties.
 
 `keep_silent`
-  Normally `false`; `true` makes most group 2 actions silent.
+  Normally `false`; `true` makes most :ref:`group 2 actions
+  <group-2-actions>` silent.
 
 `location`
   The player's current room; unless that's dark, when it contains
@@ -187,6 +199,8 @@ Library variables
 `wn`
   The input stream word number, counting from 1.
 
+.. _library-routines:
+
 Library routines
 ================
 
@@ -194,7 +208,8 @@ Library routines
   A scored task has been achieved.
 
 `AfterRoutines()`
-  In a group 2 action, controls output of "after" messages.
+  In a :ref:`group 2 action <group-2-actions>`, controls output of "after"
+  messages.
 
 `AllowPushDir()`
   An object can be pushed from one location to another.
@@ -216,17 +231,17 @@ Library routines
 `DrawStatusLine()`
   Refreshes the status line; happens anyway at end of each turn.
 
-`GetGNAOfObject(obj_id)`
+`GetGNAOfObject({obj_id})`
   Returns gender-number-animation 0..11 of the `{obj_id}`.
 
-`HasLightSource(obj_id)`
+`HasLightSource({obj_id})`
   Returns `true` if the `{obj_id}` has light.
 
 `IndirectlyContains({parnt_obj_id,obj_id})`
   Returns `true` if `{obj_id}` is currently a child or grand-child or
   great-grand-child... of the `{parent_object}`.
 
-`IsSeeThrough(obj_id)`
+`IsSeeThrough({obj_id})`
   Returns `true` if light can pass through the `{obj_id}`.
 
 `Locale({obj_id,"string1","string2"})`
@@ -354,6 +369,8 @@ Library routines
   Returns the type of its `{arg}` : 3 for a string address, 2 for a routine
   address, 1 for an object number, or 0 otherwise.
 
+.. _object-props:
+
 Object properties
 =================
 
@@ -366,7 +383,7 @@ returns `true`):
   | `{property} [; {routine_id}(); ]`
   | `{property} {routine_id}`
 
-In this appendix, "⊕" marks an additive property.  Where a `Class` and an
+In this appendix, |ADD| marks an additive property.  Where a `Class` and an
 `Object` of that class both define the same property, the value specified
 for the `Object` normally overrides the value inherited from the `Class`.
 However, if the property is additive then both values apply, with the
@@ -377,7 +394,7 @@ Object's value being considered first.
   The `{value}` can be a space-separated list of `{obj_ids}`, or a routine
   which invokes `PlaceInScope()` or `ScopeWithin()` to specify objects.
 
-`after` 
+`after` |ADD|
   For an object: receives every `{action}` and `{fake_action}` for which
   this is the `{noun}`.  For a room: receives every `{action}` which occurs
   here.
@@ -398,7 +415,7 @@ Object's value being considered first.
   For a non-English object: its definite and indefinite articles.  The
   `{value}` is an array of strings.
 
-`before` 
+`before` |ADD|
   For an object: receives every `{action}` and `{fake_action}` for which
   this is the `{noun}`.  For a room: receives every action which occurs
   here.
@@ -435,7 +452,7 @@ Object's value being considered first.
   `StartDaemon({obj_id})` and which then runs once each turn until
   deactivated by `StopDaemon({obj_id})`.
 
-`describe` 
+`describe` |ADD|
   For an object: called before the object's description is output.  For a
   room: called before the room's (long) description is output.
 
@@ -471,7 +488,7 @@ Object's value being considered first.
 `e_to`
   See `d_to`.
 
-`each_turn` 
+`each_turn` |ADD|
   Invoked at the end of each turn (after all appropriate daemons and
   timers) whenever the object is in scope.  The `{value}` can be a string,
   or a routine.
@@ -518,7 +535,7 @@ Object's value being considered first.
   `inventory_stage` has the value 2, and the routine should return `false`
   to continue, or `true` to stop processing and produce no further output.
 
-`life` 
+`life` |ADD|
   For an `animate` object: receives person-to-person actions (`Answer`,
   `Ask`, `Attack`, `Give`, `Kiss`, `Order`, `Show`, `Tell`, `ThrowAt` and
   `WakeOther`) for which this is the `{noun}`.  The `{value}` is a routine
@@ -545,7 +562,7 @@ Object's value being considered first.
 `n_to`
   See `d_to`.
 
-`name` 
+`name` |ADD|
   Defines a space-separated list of words which are added to the Inform
   dictionary.  Each word can be supplied in apostrophes '...'  or quotes
   "..."; in all other cases only words in apostrophes update the
@@ -566,7 +583,7 @@ Object's value being considered first.
 `nw_to`
   See `d_to`.
 
-`orders` 
+`orders` |ADD|
   For an `animate` or `talkable` object: the `{value}` is a routine called
   to carry out the player's orders.  The routine should return `false` to
   continue, or `true` to stop processing the action and produce no further
@@ -649,6 +666,8 @@ Object's value being considered first.
   For a `lockable` object: the `{obj_id}` (generally some kind of key)
   needed to lock and unlock the object, or `nothing` if no key fits.
 
+.. _object-attrs:
+
 Object attributes
 =================
 
@@ -749,6 +768,8 @@ Object attributes
 `worn`
      For a `clothing` object: is being worn.
 
+.. _entry-points:
+
 Optional entry points
 =====================
 
@@ -823,6 +844,8 @@ These routines, if you supply them, are called when shown.
 `UnknownVerb()`
   Called when an unusual verb is encountered.
 
+.. _group-1-actions:
+
 Group 1 actions
 ===============
 
@@ -878,11 +901,15 @@ and the debug tools.
 `XTree`           "`TREE`"
 ===============   ===================================================
 
+.. _group-2-actions:
+
 Group 2 actions
 ===============
 
 Group 2 actions usually work, given the right circumstances.
 
+.. tabularcolumns:: |l|p{5in}|
+
 =============   =============================================================
 `Close`         "`CLOSE [UP]`", "`COVER [UP]`", "`SHUT [UP]`"
 `Disrobe`       "`DISROBE`", "`DOFF`", "`REMOVE`", "`SHED`", "`TAKE OFF`"
@@ -940,12 +967,16 @@ Group 2 actions usually work, given the right circumstances.
 `Wear`          "`DON`", "`PUT ON`", "`WEAR`"
 =============   =============================================================
 
+.. _group-3-actions:
+
 Group 3 actions
 ===============
 
 Group 3 actions are by default stubs which output a message and stop at the
 "before" stage (so there is no "after" stage).
 
+.. tabularcolumns:: |l|p{5in}|
+
 =============   =============================================================
 `Answer`        "`ANSWER TO`", "`SAY TO`",
                 "`SHOUT TO`", "`SPEAK TO`"
@@ -1016,6 +1047,8 @@ Fake actions
 Fake actions handle some special cases, or represent "real" actions from
 the viewpoint of the second object.
 
+.. tabularcolumns:: |l|p{5in}|
+
 ================   ========================================================
 `LetGo`            Generated by `Remove`.
 `ListMiscellany`   Outputs a range of inventory messages.