I7: How to unmark for listing items in containers

I have a shaft (a container) that contains a ladder. The description of the shaft will eventually contain conditional text concerning the ladder. Therefore, I do not want the ladder listed when examining the shaft.

The Shaft is a container in the Steep Slope. The Shaft is scenery. The shaft is enterable. The description of the shaft is "The mine shaft is deep."

A ladder is a thing. The ladder is in the shaft. The ladder is not marked for listing.
When playing the game, however, the result on examining the shaft is:

[i][b]The mine shaft is deep.

In the shaft is a ladder.[/b][/i]

How do I tell Inform to omit the paragraph about the ladder?

Is there a specific reason that the ladder can’t also be scenery?

You may be able to get away with simply not having the ladder be inside the shaft. If they’re both scenery objects in the same room, the player will still be able to do all the actions you expect.

I don’t want the ladder to be scenery as I want the player to be able to take it.

I’m too rusty on Inform to wrangle the details, but I think maybe you’ll find a solution in Example 343, “The Eye of the Idol.”

If you just want to get rid of “In the shaft is a ladder” after examining, you could replace the “examine containers rule” which is responsible for printing that message. (This can be found using the “rules” command while running the game in the IDE.)

[code]Carry out an actor examining (this is the don’t describe contents of the shaft rule):
if the noun is the shaft, do nothing;
otherwise follow the examine containers rule.

The don’t describe contents of the shaft rule is listed instead of the examine containers rule in the carry out examining rulebook.[/code]
Note that this will omit all contents of the shaft when examining. Of course you could change the rule to whatever you need – i.e. listing the contents other than the ladder, etc.

Does this work?

For writing a paragraph about the not handled ladder: Now the ladder is mentioned. That should neatly suppress the ladder, but only until the player takes it. If the player picks it up and puts it back into the shaft, the paragraph will come back. If this isn’t what you want, try this:

For writing a paragraph about the ladder while the ladder is in the shaft: Now the ladder is mentioned.

Edit: The above only works for basic room descriptions. If you need to do things with examining, use Skinny Mike’s solution.

You can do without the “do nothing” bit by using this. Also, it’s probably better to us “abide” rather than “follow”.

[code]Carry out an actor examining (this is the don’t describe contents of the shaft rule):
if the noun is not the shaft, anonymously abide by the examine containers rule.

The don’t describe contents of the shaft rule is listed instead of the examine containers rule in the carry out examining rulebook.[/code]

If you just want to leave out the ladder, then you could just use this.

The ladder is undescribed.

Then if you wanted the ladder to be described after taking the ladder, you can add this.

Carry out taking the ladder: now the ladder is described.

You can do this for any action, not just taking. This way the ladder is described after it is moved about.

Hope this helps.

I know undescribed is deprecated - it may even be removed completely in the next release. There’s pretty much always a way around using it (for example, toggling the “scenery” property, or setting the locale priority of the ladder to 0 in an “after choosing notable locale objects” rule).

Really? I had no idea. I’ve always found it useful since “scenery = undescribed + fixed in place” and scenery can’t be moved. The Standard Rules say this.

Scenery is usually fixed in place. [An implication.]

I guess I’d use this instead.

[code]The ladder is scenery and portable.

Carry out taking the ladder:
now the ladder is not scenery.[/code]

This should do the trick.

Scenery is normally not described, but scenery does not rely on the I7 “undescribed” property. The “scenery” property by itself is sufficient to exclude things from descriptions.