§5.13. Making new substitutions

If we have some textual effect which needs to occur in several different messages, we might want to create a new text substitution for it. For instance:

The Missile Base is a room. "[security notice]Seems to be a futuristic missile base." M's Office is east of the Missile Base. "[security notice]Admiral Sir M.- M.- glares up from his desk."

To say security notice:
    say "This area is a Prohibited Place within the meaning of the Official Secrets Act 1939. "

This is only the tip of the iceberg in how to define ways to do things using "To...", as we shall see. The definition makes "say the security notice" a new phrase known to Inform. A text substitution is exactly a phrase whose name begins with "say" (well - except for the "say" phrase itself), so the effect is that "[security notice]" is a new text substitution. Several of the examples in this chapter make use of this trick.

Inform often ignores the casing of the text it reads, but sometimes uses it as a clue to meaning. We have already seen that "[an item]" and "[An item]" produce different results, for instance. Similarly, it's possible to define two text substitutions which are the same except for the initial casing. We might write:

To say Security Notice:
    say "THIS AREA IS A PROHIBITED PLACE WITHIN THE MEANING OF THE OFFICIAL SECRETS ACT 1939. "

And now Inform will act on "[Security Notice]" differently from "[security notice]".

* See The phrasebook for other forms of phrase besides To say...


arrow-up.pngStart of Chapter 5: Text
arrow-left.pngBack to §5.12. Displaying quotations
arrow-right.pngOnward to Chapter 6: Descriptions: §6.1. What are descriptions?

We can use these substitutions to put together fairly complicated variations within a single piece of text:

paste.png "Fifty Ways to Leave Your Larva"

The Beekeeper's Palace is a room. Wasp is a woman in the palace. Drone is a man in the palace.

Instead of kissing someone:
    say "'[denial], [insult]! [boast]!'";

In this context, [denial] is understood to refer to the denial property of the noun -- but we could spell it out with "denial of the noun" if we wanted to.

A person has some text called denial. The denial of a person is usually "Stand back". The denial of Drone is "You forget yourself"

A person has some text called insult. The insult of a person is usually "Grasshopper". The insult of Wasp is "Larva".

A person has some text called boast. The boast of a person is usually "I am ferocious". The boast of Drone is "I have ferocious allies".

And then it would be trivial to insert further rules using these responses:

Instead of attacking someone:
    say "'Get away, [insult]!'"

Test me with "kiss wasp / hit wasp / hit drone / kiss drone".

*ExampleFifty Ways to Leave Your Larva
Using text substitution to make characters reply differently under the same circumstances.

We can use these substitutions to put together fairly complicated variations within a single piece of text:

paste.png "Fifty Ways to Leave Your Larva"

The Beekeeper's Palace is a room. Wasp is a woman in the palace. Drone is a man in the palace.

Instead of kissing someone:
    say "'[denial], [insult]! [boast]!'";

In this context, [denial] is understood to refer to the denial property of the noun -- but we could spell it out with "denial of the noun" if we wanted to.

A person has some text called denial. The denial of a person is usually "Stand back". The denial of Drone is "You forget yourself"

A person has some text called insult. The insult of a person is usually "Grasshopper". The insult of Wasp is "Larva".

A person has some text called boast. The boast of a person is usually "I am ferocious". The boast of Drone is "I have ferocious allies".

And then it would be trivial to insert further rules using these responses:

Instead of attacking someone:
    say "'Get away, [insult]!'"

Test me with "kiss wasp / hit wasp / hit drone / kiss drone".

We can use these substitutions to put together fairly complicated variations within a single piece of text:

paste.png "Fifty Ways to Leave Your Larva"

The Beekeeper's Palace is a room. Wasp is a woman in the palace. Drone is a man in the palace.

Instead of kissing someone:
    say "'[denial], [insult]! [boast]!'";

In this context, [denial] is understood to refer to the denial property of the noun -- but we could spell it out with "denial of the noun" if we wanted to.

A person has some text called denial. The denial of a person is usually "Stand back". The denial of Drone is "You forget yourself"

A person has some text called insult. The insult of a person is usually "Grasshopper". The insult of Wasp is "Larva".

A person has some text called boast. The boast of a person is usually "I am ferocious". The boast of Drone is "I have ferocious allies".

And then it would be trivial to insert further rules using these responses:

Instead of attacking someone:
    say "'Get away, [insult]!'"

Test me with "kiss wasp / hit wasp / hit drone / kiss drone".

***ExampleFifty Times Fifty Ways
Writing your own rules for how to carry out substitutions.