| Chapter 17: Activities |

| 17.21. Deciding the scope of something

1. When it happens. "Scope" is a term of art in interactive fiction programming: it means the collection of things which can be interacted with at any given moment, which depends on who you are and where you are. Commands typed by the player will only be allowed to go forward into actions if the things they refer to are "in scope". Inform also needs to determine scope at other times, too: for instance, when deciding whether a rule conditional on being "in the presence of" something is valid. It is a bad idea to say anything during this activity.

2. The default behaviour. Is complicated: see the Inform Designer's Manual, 4th edition, page 227. Briefly, the scope for someone consists of everything in the same place as them, unless it is dark.

3. Examples. (a) We very rarely want to forbid the player to refer to things close at hand, but often want to allow references to distant ones. For instance, a mirage of something which is not present at all:

> After deciding the scope of the player while in the Shrine: place the holy grail in scope.

The special phrase "place ... in scope" does what it suggests. Ordinarily if something is placed in scope, then so are its parts and (in the case of a supporter or a transparent or open container) its contents; but we can also "place the box in scope, but not its contents" if we really need to place just the box itself in scope.

(b) Another useful device is to be able to see, but not touch, another room:

> The Cloakroom is a room. "This is just a cloakroom, but through a vague, misty mirror-window you can make out the Beyond." After looking in the Cloakroom, say "In the mirror you can see [list of things in the Beyond]."

> After deciding the scope of the player while in the Cloakroom: place the Beyond in scope.

> The Beyond is a room. Johnny Depp is a man in the Beyond.

(This must, however, also be a mirage, as at time of writing Mr Depp is alive and as well as can be expected following the reviews of "Charlie and the Chocolate Factory".) When a room is placed in scope, this is understood as placing its contents in scope rather than the room-object itself. So "place the Ballroom in scope" allows the player to talk about the dancers, the chamber musicians and so forth, but not to "EXAMINE BALLROOM" as such. (This is sensible because actions like examining apply to things: and a room, unlike a container or a supporter, is not a kind of thing.)

(c) In darkness, the scope of someone is ordinarily restricted to his or her possessions (and body), but we can override that:

> After deciding the scope of the player while in darkness: place the location in scope.

4. A note about actions. This activity takes place during the process of understanding the player's command, when the action that will take place is not fully known. So if the player types "TAKE SHOEBOX", this activity would happen when SHOEBOX is being examined for meaning. Inform knows the action it would be taking if the current line of command grammar were to be accepted, but it does not yet know to what objects that command would be applied. That means attaching a proviso like "... while taking a container" to a rule for this activity will cause the rule to have no effect - whereas "... while taking" would be fine.

267
| Example Peeled Two different approaches to adjusting what the player can interact with, compared.

268
| Example Scope for listening different from scope for seeing Using "deciding the scope" to change the content of lists such as "the list of audible things which can be touched by the player".

269
| Example Ginger Beer A portable magic telescope which allows the player to view items in another room of his choice.

270
| Example Stately Gardens An open landscape where the player can see landmarks in nearby areas, and automatically moves to interact with them.

Previous | Contents | Next