Chapter 17: Activities
17.27. 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.

Two different phrases enable us to place unusual items in scope:

place (object) in scope

This phrase should only be used in rules for the "deciding the scope of..." activity. It places the given object in scope, making it accessible to the player's commands, regardless of where it is in the model world. Examples:

place the distant volcano in scope;
place the lacquered box in scope, but not its contents;

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; using the "but not its contents" option we can place just the box itself in scope.

place the/-- contents of (object) in scope

This phrase should only be used in rules for the "deciding the scope of..." activity. It places the things inside or on top of the given object in scope, making them accessible to the player's commands, but it does nothing to place the object itself in scope. (It might of course be in scope anyway, and if it is then this phrase won't remove it.) Example:

place the contents of the lacquered box in scope;
place the contents of the Marbled Steps in scope;

Note that the object in question can be a room, as in this second example.

(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.


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

RB
350
* Example  Four Stars 2
Using "deciding the scope" to change the content of lists such as "the list of audible things which can be touched by the player".

RB
351
** Example  Rock Garden
A simple open landscape where the player can see between rooms and will automatically move to touch things in distant rooms.

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

RB

Suppose we want to have a pair of linked lenses so that the player can look into one of them and see things which occur in room containing the other lense.

We begin simply with a bit of environment for the player to wander around:

"Ginger Beer"

The Ginger Beer Factory is a room. "In the center of the room is an enormous pot filled with crushed ginger, which seems to be bubbling slightly on its own. The fumes are overwhelming."

The pot is scenery in the Ginger Beer Factory. The description of the pot is "Cast iron." In the pot is a bubbling brew.

Instead of smelling the Ginger Beer Factory: try smelling the brew.

Instead of smelling the brew, say "You blink back tears."

The Storeroom is south of the Ginger Beer Factory. "The walls here are lined with a prodigious number of small, rounded bottles, each with a screw top and a smiling pirate on the label."

The Clippings Room is west of the Ginger Beer Factory. "A clean room lined with steel tables, for preparing ingredients."

Some steel tables are a supporter in the Clippings Room. They are scenery. The description is "They are roughly the size and height of laboratory worksurfaces."

The quantity of dandelion is on the steel tables. The description is "Horrible common weed."

The wooden box is on the steel tables. It is openable and closed. The description is "A large wooden box with a lid, used for ingredient storage. There is a label on the lid."

The label is part of the box. The description is "BURDOCK: the root beaten with a little salt and laid on the place suddenly easeth the pain thereof, and helpeth those that are bit by a mad dog:... the seed being drunk in wine 40 days together doth wonderfully help the sciatica: the leaves bruised with the white of an egg and applied to any place burnt with fire, taketh out the fire, gives sudden ease and heals it up afterwards.... The root may be preserved with sugar for consumption, stone and the lax."

The quantity of burdock is in the box. The description is "It looks like a kind of thistle."

Some bottles are in the Storeroom. They are scenery. The description is "They are smaller than the average bottle, because more potent." Instead of taking the bottles, say "Take one away and the whole lineup will cascade to the floor."

Now for the lenses themselves:

A lense is a kind of thing.

The large end of the telescope is a lense in the Ginger Beer Factory. "There is a large glass lense propped against the wall, in which are reflected all the contents of the room." Understand "glass" or "lense" as the large end.

The small end of the telescope is a lense in the Storeroom. "There is a small glass lense sitting on the floor. Due to some curious effect of the optics, it appears to be giving a view of somewhere else entirely." Understand "glass" or "lense" as the small end. The description is "A gleaming lense about the size of a pound coin."

Here is the critical bit, which needs to be somewhat flexible, since the large end of the telescope could in theory be left anywhere in the game (and should still work).

After deciding the scope of the player while the small end is carried by the player:
    let there be the holder of the large end;
    place there in scope.

Before searching the small end when the small end is not carried by the player:
    say "(first picking up [the small end] and holding it to your eye)";
    silently try taking the small end.

Instead of searching the small end when the player is not carrying the small end:
    say "It's too hard to look through the small end from a distance."

Instead of searching the large end,
    say "You see only your own reflection."

We also want to make sure that the player who looks through the small lense does not see the large lense listed among the contents of the other location:

Definition: a thing is recognizable if it is not a lense.

Instead of searching the small end:
    let the far side be the holder of the large end of the telescope;
    say "You peer into the little lense and through it see, in [the far side], [the list of recognizable things in the far side]."

Test me with "examine lense / south / examine lense / look through lense / north / look through small lense".

And we're done.

353
*** Example  Stately Gardens
An open landscape where the player can see landmarks in nearby areas, with somewhat more complex room descriptions than the previous example, and in which we also account for size differences between things seen at a distance.

RB


PreviousContentsNext