X-Git-Url: https://jxself.org/git/?p=ibg.git;a=blobdiff_plain;f=appendices%2Ff.rst;h=c9a90e9145b06d9e3cf03d732de24215dd75130f;hp=db6f55d3751f4c4b18c0cbb26f87e181b6eed238;hb=2a223f38ada318aa468e46210b7f92941816100e;hpb=c2ead72558bf28859c401039c4273d7d31aff05a diff --git a/appendices/f.rst b/appendices/f.rst index db6f55d..c9a90e9 100644 --- a/appendices/f.rst +++ b/appendices/f.rst @@ -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 + ` 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 `, 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.