Skip to content

Commit

Permalink
Polish ALL Word Commentary
Browse files Browse the repository at this point in the history
Polish a couple of sentences and annotate TODOs and problems.
  • Loading branch information
tajmone committed Oct 20, 2021
1 parent 9d76549 commit 923c75d
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions manual/manual_05.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -130,17 +130,25 @@ This allows:
> _remove the hat and the scarf then drop THEM_
================================================================================

// FIXME: The first sentence below could be polished a bit!

The reference to multiple objects (or actors) in a position is only possible if the adventure author has allowed it by using a ((multiple indicator)) (((parameter, indicators, multiple))) in the `Syntax` definition (see <<SYNTAX Definitions>>).
All the variations above are built-in and handled automatically by the run-time system.

The interpreter also automatically restricts (((parameter, referencing))) parameter references to things which are reachable according to the semantic rules of each built-in base class (see <<Instances>> for the complete details).
For example, objects can only be referred to if they are present at the current location, except if the `Syntax` for the command uses the (((omnipotent indicator))) (((parameter, indicators, omnipotent))) omnipotent `!` indicator (see <<SYNTAX Definitions>> for details).
Referencing multiple instances (objects or actors) in a given command position is only possible if the adventure author has allowed it by using a
(((multiple indicator))) (((parameter, indicators, multiple)))
multiple `*` indicator in the `Syntax` definition (see <<SYNTAX Definitions>>).
All the above variations are built-into the interpreter and automatically handled by the run-time system.

The interpreter also restricts (((parameter, referencing))) parameter references to things which are reachable according to the semantic rules of each built-in base class (see <<Instances>> for the complete details).
For example, objects can only be referred to if they are present at the current location, except if the `Syntax` for the command uses the (((omnipotent indicator))) (((parameter, indicators, omnipotent)))
omnipotent `!` indicator (see <<SYNTAX Definitions>> for details).
For some hints on ways to allow the player to refer to objects and actors that are not at the current location, refer to <<Distant and Imaginary Objects,_Distant & Imaginary Objects_>>.

If the player uses *ALL* instead of a reference to an instance in his command, the verb will be applied to all appropriate instances at the current location, _except_ the ones that do not pass all checks for the verb (see <<VERBs>> for further details on this).

// @NOTE: The above paragraph could be clearer about the difference of VERBs
// which are attempted and those which simply fail, when using ALL.
// Q: * How do the SYNTAX WHERE and VERB CHECKs differ here?

A restriction placed on the player input by the interpreter is that the words the player is allowed to use can only contain alphanumeric characters, underscores and dash.
This must be kept in mind when naming verbs that use the default syntax (an explicit `Syntax` statement can always specify other player words to trigger the verb).

// @TODO: Could add xref to "4.2. Words, Identifiers and Names"!

// @CHECK: Here it mentions "underscores and DASH", but it doesn't sound right.
Expand All @@ -157,9 +165,6 @@ If the player uses *ALL* instead of a reference to an instance in his command, t
// encoding (ISO-8859-1, or others). It might be better to specify
// "letters, numbers, underscores and hyphens"

A restriction placed on the player input by the interpreter is that the words the player is allowed to use can only contain alphanumeric characters, underscores and dash.
This must be kept in mind when naming verbs that use the default syntax (an explicit `Syntax` statement can always specify other player words to trigger the verb).

== Player Words

You use `Syntax` statements to define the structure of available player commands.
Expand Down

0 comments on commit 923c75d

Please sign in to comment.