How do you do it?

I have the following:
a fortune teller booth (a room)
a fortune teller booth (a thing in the room)
a fortune teller (a person)
a fortune (a thing)

Is there a way to disambiguate all of these from both the compiler and the player? Or do i just need to come up with different names?

I’ve tried using called but it doesn’t seem to do what i want in all cases.

d.

FTB-room is a room. The printed name is "Fortune Teller Booth". etc.

Inform should be able to disambiguate as needed (e.g. X BOOTH will look at the thing).

1 Like

As far as the compiler is concerned, put this at the start:

Use unabbreviated object names.

See WI §3.2 Rooms and the map.

That won’t help with the two things you have with the exact same name. You’ll need to do something like @Hidnook suggested for that.

You probably don’t really need to have the fortune teller booth as both its own room and a thing in the room. What are the game effects you want to achieve?

And are you familiar with the Starry Void example?

3 Likes

I would consider using different names. Instead of fortune teller, perhaps Esmerelda the Mysterious.

I wouldn’t put a booth in the booth, personally. If the player is in the booth already, a table likely makes more sense.

players usually can’t do anything with room names, so I’d keep fortune teller's booth, that seems ok.

That leaves the “fortune”, which could be left as-is

good does the player mean rules will smooth out any rough edges, probably. IE, if the player isn’t meant to interact with booth/table, tell the parser not to prefer it

EDIT, as in

does the player mean doing something when the current action involves the table: it is unlikely

https://zedlopez.github.io/i7doc/WI_17.html#section_19

4 Likes