I'm having people playtest a game I'm making. This game has an inventory system that allows one to look at individual object descriptions in separate passages, then go back to the passage they were at previously. A lot of these passages have a lot of hidden text that's revealed through (linkreveal:) and (click: ?hook) macros. When you visit an object's description and go back to the passages with hidden text, the text is re-hidden. A good number of people have made comments that this is annoying, because then they have to click through all the text again.
I'm wondering of a good way to like...nullify the macros when they've already been clicked. Perhaps there's a really obvious macro I missed? The only thing I can think of is something like...
(in startup)
(set: $isClicked to false)
(in passage)
This is some text with (if: $isClicked is false)[(set: $isClicked to true)(link-reveal: "hidden text")[ that reveals an [[Item]]]](else:)[hidden text that reveals an [[Item]].]
This seems...really clunky and repetitive though so I'm sure there's a better way! I haven't quite wrapped my head around the changes that were made for Harlowe 2 (lambdas, temporary variables, (for:), etc) so I'm probably missing something!
Also this is what I'm using in the Item passage to go back:
(link-goto: "Back to what you were doing.", (history:)'s last)