Noob question 2: Suppressing list of described objects

I have objects in a room which I’m covering in the room description, so I want to suppress the “You can see __” message when entering the room. I know how to do this for nondescript objects, but these objects do have a description for when the player looks at them. How do I keep objects with a description from being listed on entering a room?

Thanks again…

If the object is immovable, you can just declare the object to be scenery, like this:

Lab is a room. "A lab with a rock in it." A rock is scenery in lab. A stone and a pebble are in Lab.

If the objects are things that can be taken, then you can put their names in brackets in the room description (but make sure that they don’t show up when they’re not actually there!) If an object has been mentioned anytime in the course of looking before the “You can [also] see…” line prints, then Inform knows not to include it in the “You can see…” But you need to put its name in brackets so Inform actually has to look up the object and print its name–otherwise it has no idea you just mentioned it.

Like this:

[code]Lab is a room. A rock, a stone, and a pebble are in Lab. The description of the Lab is “A lab[if the rock is in the lab] with a big [rock] in it[end if].”

test me with “take rock/l”.[/code]

Thanks, that does stop the automatic listing; but then when you look at or examine the object, the description of the object doesn’t print, just the “you see nothing special” message.

The behavior I’m after is for the objects to be mentioned briefly in the room description without the “you see” list, then the objects’ full descriptions when the player looks at them.

To describe an object, you have to begin with “The description of X is…”. Are you doing that?


[code]Lab is a room. The description of Lab is “The only thing here is a table.”

A table is a supporter in Lab. The table is scenery. The description of the table is “It’s just a table.”[/code]

I also suggest checking for typos. For instance, if I write

A table is a supporter in Lab. The table is scenery. The description of the taable is "It's just a table."

…examining the table will not give my description, because Inform thinks that description is for the “taable” instead of the “table.”

You might also be looking for the initial appearance of the object, which prints in a room description if the player has never picked up the object. If you put a phrase in quotation marks immediately after defining an object, Inform takes it to be the initial appearance rather than the description (which is what you get when you examine it). As bg said, to declare a description you have to state explicitly that it’s a description.


Lab is a room. "You are in a lab with white walls." A rock is in the lab. "A rock lies on the floor of the lab." The description of the rock is "You lose yourself for hours studying the rock's every detail."

sets the initial appearance of the rock to “A rock lies on the floor of the lab.” This code yields:

Note that, when the initial appearance prints, you don’t get a “You can see…” for the rock, because Inform knows it was mentioned when you printed its initial appearance. Even though we didn’t explicitly tell Inform we were printing its name.

Aha! Excellent explanation with both the ‘how’ and the ‘why.’ Thanks again!