From 82930b6bd96f206771f1daa2a9732b67bb956e47 Mon Sep 17 00:00:00 2001 From: tajmone Date: Wed, 1 Sep 2021 14:09:48 +0200 Subject: [PATCH] Polish ALL Word Commentary Polish a couple of sentences and annotate TODOs and problems. --- manual/manual_05.adoc | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/manual/manual_05.adoc b/manual/manual_05.adoc index 6af65e2..0805e9e 100644 --- a/manual/manual_05.adoc +++ b/manual/manual_05.adoc @@ -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 <>). -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 <> 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 <> 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 <>). +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 <> 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 <> 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 <>. 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 <> 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. @@ -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.