Generally, room links are symettric (east from foyer to library generally means west from library to foyer).
I attempted the following:
@(link $R1 $Direction to $R2)
(from $R1 go $Direction to $R2)
(opposite of $Direction is $Return)
(from $R2 go $Return to $R1)
#middle-of-nowhere
(room *)
(name *) Middle of Nowhere
(#knock is #in *)
(link * #south to #backtracking)
#backtracking
(room *)
(name *) Backtracking
… but it seems to get confused:
Middle of Nowhere
You are here.
> exits
Obvious exits are:
South.
> s
You walk south.
Backtracking
You are here.
> exits
Obvious exits are:
North to the Middle of Nowhere.
> s
You walk south.
Middle of Nowhere
You are here.
> s
You walk south.
Backtracking
You are here.
> e
You walk east.
Middle of Nowhere
You are here.
> e
There doesn't appear to be an exit in that direction.
> w
There doesn't appear to be an exit in that direction.
> s
You walk south.
Backtracking
You are here.
> w
You walk west.
Middle of Nowhere
You are here.
>
I suspect this is an issue with (the Dialog equivalent of) macro expansion, and (opposite of $Direction is $Return)
is just not going to work in an @
rule; but I’m curious if there is a way to make this work?