Property consistency - visited/unvisited

So, following on from a surprising inability to re-set the ‘for the first time’ flag (which resulted in much code refactoring), a new rant follows. Feel free to skip.

[rant redacted]


I was wondering about your first problem…the Epistemology extension lets you set and I believe unset things to seen and unseen. Perhaps using that might help with your initial description issue.

 If a thing has a property, whether it be 'lighted' or 'visible ' or 'visited for the first time' then I should be able to both query it and set it.

Not everything that can be queried can be set. In the case of “visible” for instance there’s a huge and complicated process that goes into determining visibility. If you said “Now the distant peak is visible” exactly what changes to the internal structure would Inform be expected to make? It’s like “x is divisible by 3”; you can test if x is divisible by 3 but if you tried to say “Now x is divisible by 3” it wouldn’t at all be clear what Inform (or any other language) should do if x were 8.

However, I think you can just set visited and unvisited in the normal way. I’m afraid the following code will make you cry:

[code]Limbo is a room. Hades is a room. Dis is south of Hades. Lethe is north of Hades. “Taking a dip in the river Lethe, you forget all.” Limbo is north of Lethe.

The description of a room is usually “[if unvisited][The item described]! You’ve never been here before, that you can remember[otherwise]Oh, [The item described]. Boring[end if].”

Carry out going to Lethe: now every room is unvisited.

Test me with “l/s/n/s/s/s/n/s/n/n/s/s”.[/code]

ETA: If you literally said “now the room is unvisited” as such then your problem is probably with “the room” rather than “unvisited.” You need to say specifically which room, like “the location” or “the room gone from.”

It did.

It turned out my error was in some preceeding code.


Rant redacted.