Chapter 9: Props: Food, Clothing, Money, Toys, Books, Electronics
9.6. Reading Matter

Many things can be read, from warning notices to encyclopaedias, and a range of techniques is needed to provide them because the quantity of text, and how it presents itself, can vary so much. With a small amount of very large type, the player should not need any command at all to read the text:

The road sign is in the Junction. The road sign is fixed in place. "A road sign points north: 'Weston on the Green - 6'."

If the print is smaller, or the object portable, the player will expect to use the EXAMINE command:

The business card is in the Junction. The description is "'Peter de Sèvres: consultant mnemonicist.'"

But if the object is a leaflet, say, EXAMINE should only describe the cover: READ would be the command a player would expect to use to get at the text itself. Inform normally defines READ to be the same command as EXAMINE, which is good for things like the business card, but counter-productive here. The Trouble with Printing shows how to separate these two commands, allowing any thing to have a property called its "printing" for text produced by READ, which will be different from its "description", the text produced by EXAMINE.

If the object is a lengthy diary, say, nobody would read it from cover to cover in a single IF turn. We might then want to allow the player to turn the pages one by one, with commands like READ PAGE 4 IN DIARY or READ THE NEXT PAGE: see Pages.

If the object is an encyclopaedic reference work, the player would consult named entries: see Costa Rican Ornithology, which allows commands like LOOK UP QUETZAL IN GUIDE.

Still larger sources of text often occur in IF: libraries or bookshelves, where many books are found together, and it is clumsy to write them as many individual items. One approach is to simulate an entire bookshelf with a single thing: see Bibliophilia. (This is much like looking up topics in a single book, except that each topic is a book in itself.) Another is to provide each book as an individual item, but have them automatically join together into a single portable collection: see AARP-Gnosis.

Signs, leaflets and encyclopaedias, being printed, have a wording which will never change during play. But sometimes the player reads something which acts of its own accord. Text substitutions are usually all that is needed to achieve this:

The computer display is on the desk. The description is "Giant green digits read: [the time of day]."

This is easy because we know all the variations we want. But what if we want the player to write his own text, for instance, adding to a diary? This is trickier, because it means storing text as the player typed it, and replaying it later. (And suppose the player types reams and reams of text, not just a few words as we might have hoped?) The Fourth Body and The Fifth Body show how to use an external file - a multimedia trick requiring features only available if the project is set to the Glulx story file format - to handle even the most difficult cases.


94
*** Example  Costa Rican Ornithology
A fully-implemented book, answering questions from a table of data, and responding to failed consultation with a custom message such as "You flip through the Guide to Central American Birds, but find no reference to penguins."

WI
292
* Example  Pages
A book with pages that can be read by number (as in "read page 3 in...") and which accepts relative page references as well (such as "read the last page of...", "read the next page", and so on).

WI
313
** Example  Bibliophilia
A bookshelf with a number of books, where the player's command to examine something will be interpreted as an attempt to look up titles if the bookshelf is present, but otherwise given the usual response.

WI
322
** Example  AARP-Gnosis
An Encyclopedia set which treats volumes in the same place as a single object, but can also be split up.

WI
281
* Example  The Trouble with Printing
Making a READ command, distinct from EXAMINE, for legible objects.

WI
432
* Example  The Fourth Body
Notebooks in which the player can record assorted notes throughout play.

WI
433
** Example  The Fifth Body
An expansion on the notebook, allowing the player somewhat more room in which to type his recorded remark.

WI

The implementation here is much like that of the previous example, except that we allow the player to write his notebook input as a separate command, leading to an exchange such as

>write in my notebook
You open your notebook and prepare to write in it.

>>Am beginning to think that HT and BGG are in this together.
You finish writing and fold your notebook away.

>read my notebook
You read:

Wednesday morning

Am beginning to think that HT and BGG are in this together.

The opening is much as before:

"The Fifth Body"

A jotter is a kind of thing. A jotter has an external file called the text file. A jotter can be fresh or used. A jotter is usually fresh. A jotter has a text called the heading.

The currently erased jotter is an object that varies.

To erase (pad - a jotter):
    now the currently erased jotter is the pad;
    write "[heading of the currently erased jotter][paragraph break]" to the text file of the pad;
    now the pad is fresh.

To write in (pad - a jotter):
    append "[the time of day]: [player's command][line break]" to the text file of the pad;
    now the pad is used.

To read (pad - a jotter):
    say "You read: [paragraph break][text of the text file of the pad]".

When play begins:
    repeat with pad running through jotters:
        erase the pad.

Instead of examining a used jotter (called the pad):
    read the pad.

Instead of examining a fresh jotter (called the pad):
    say "There is nothing of note in [the pad]."

Target jotter is an object that varies. The target jotter is usually nothing.

Understand "write in [something preferably held]" as writing in. Writing in is an action applying to one thing.

Check writing in:
    if the noun is not a jotter, say "It would be better to write in a notebook." instead.

Carry out writing in:
    now the command prompt is ">>";
    now the target jotter is the noun.

Report writing in:
    say "You open [the noun] and prepare to write in it."

Now what happens is that the player, having typed WRITE IN NOTEBOOK, will be faced with a ">>" prompt instead of the usual ">": a sign that the input mode has changed.

The next code is to react to reading a command. Whatever the player types at the >> prompt when the target jotter is set will now be recorded in the notebook, though with a character limit of about 60-100 characters depending on how much upper-case and punctuation he uses. (There are ways to lift the character length restriction as well, but they would take us into deeper waters.)

After reading a command when target jotter is a jotter:
    now the command prompt is ">";
    write in target jotter;
    now target jotter is used;
    say "You finish writing and fold your notebook away.";
    now the target jotter is nothing;
    reject the player's command.

Understand "erase [something preferably held]" as erasing. Erasing is an action applying to one carried thing.

Check erasing:
    if the noun is not a jotter, say "It's hard to see how." instead.

Carry out erasing:
    erase the noun.

Report erasing:
    say "You scrub out all the entries in [the noun]."

The player carries a jotter called your notebook. The file of Player's Observations is called "notebook". The text file of your notebook is the file of Player's Observations. The heading of your notebook is "Sunday Morning".

The Vestry is a room. "[Havers] hangs back by the door: the forensics expert is not finished with a preliminary examination of the body. From here you can't see much, except that the expert has peeled back and laid to one side a liturgical vestment that someone at the church used to cover the corpse until the police came. What was once a cream silk with festive Easter embroidery is now stained with blood-colored handprints."

Detective Havers is a woman in the Vestry. The description is "She looks glumly back. There's still a purple-ish bruise on her cheekbone from the disaster Thursday afternoon." Havers is scenery.

Havers is carrying a jotter called Barbara's notebook. The file of Barbara's Observations is called "barbara". The text file of Barbara's notebook is the file of Barbara's Observations. The heading of Barbara's notebook is "Sun. AM".

The time of day is 9:11 AM.


PreviousContentsNext