I have a room with three doors. My output is this:
[code]There are three doors here (Door SR4N, Door EO4 and Door SR4S) as well as a Gangway (34E).
You can see a Door (SR4S), a Door (EO4) and a Gangway (34E) here.[/code]
My goal: either suppress the automatic description of the doors or let them be listed properly.
A little explanation: The first line is part of the description of the room. The second line is the automatic output. All doors are scenery. The reason the first door from the description is not in the automatic output is, because its printed name hasn’t been changed. All the other doors have a line like this:
The printed name of the Door EO4 is "Door (EO4)".
Now, I want either of these options to happen (which I obviously am too unexperienced to manage):
Suppress the automatic output or ideally
List the doors properly like this: You can see Door SR4N, Door SR4S, Door EO4 and Gangway 34E here. (the “a” and brackets removed)
Any ideas are welcome. I am sure for you Pros no issue.
I’m not a pro, so I’ll leave the solving of your problem to them, but I’m curious: If you don’t want the brackets to be printed, why are you including them in the printed name? (I haven’t learnt much Inform 7 yet, but I thought the reason to set a printed name was so that you can get lists like this like you want them?)
By default, scenery is not listed in the automatically-generated room description. I think part of the problem is that you did not actually define any of the numbered “doors” as an actual door. If you were to do so, since you made all doors scenery, then you would (I think) achieve the first option. (I think you’ve also created, in addition to the specifically enumerated items, three unnamed instances of the “door” kind, which are present but not listed because they are scenery).
As to why SR4N is not being listed and the others are, I have no idea.
I see I didn’t express myself clearly. (Sorry about that.) What I was wondering was why you gave the door the printed name “Door (EO4)” rather than “Door EO4” when what you wanted printed was “Door EO4”. Is there some I7 reason for it that I don’t know about or am I misunderstanding what you’re trying to do?
I think it was me not expressing myself clearly. I am dead tired…
Originally that is what I had. The door was labeled “Door EO4”. Then I saw that the output was “a Door EO4”. That sounded just wrong, because there is only one “Door EO4” (not “a” door) in the entire game. Most rooms I have created so far have only one door, so I decided to change the printed name to “Door (EO4)”. Like that the game could output “A Door” and the detailling of which door it was would be in brackets. Ergo, the “a Door (EO4)” was born.
Then I created the above mentioned room with three doors and I am basically back to square one, because the “a” sounds totally silly again.
Thanks for your input. All doors are defined like this (using example of “Door EO4”):
The Door EO4 is west of the Engine Output and east of the Section 4-7. The printed name of the Door EO4 is "Door (EO4)".
It is a lockable and locked door.
It is closed.
It is scenery.
The matching key of the Door EO4 is the Keycard Engine 01.
Try defining the doors without the definite article! Then Inform will treat the names of the doors as true proper names and not as descriptions of doors. (If you had called the doors “the green door”, “the iron door” and “the barred door”, you would have wanted the output “You can see a green door, an iron door and a barred door here”.)
Have a look at section 3.18 of the Inform documentation. As Felix said, if you just define everything in the source code as “Door E04” without any articles, then Inform should tack on “a” to the beginning of its name. And you can make sure this happens by saying “Door E04 is proper-named.”