Ben, the question you asked is exactly the sort of example that proves the point I made in the introductory article on Hugo, when I said it is a domain-specific language. In a way, it could also be said to be an environment-oriented language, the environment being text-specific, line input oriented systems of the 1980s and earlier. This is not a "knock" on Hugo; if the type of game you are writing fits the environment, it works beautifully. When it does not fit the paradigm, it falls short. And in this case, what you want to do gets the short end of the stick.
What you want is available to applications directly running in Windows, Macintosh and (while I do not know from direct programming experience I presume it is) in Android, in which things that happen are
events: keypress, timer, mouse move, hover, mouse click, etc. When these events happen ("fire"), an event handler is called, it processes the event that fired, and quits, whereupon "we return to our regularly scheduled program, alreqdy in progress." If the program wasn't running, then the system returns control to whatever is running, and the program waits for another event to fire.
Hugo does have a (very) limited event processing capability through the PAUSE command. It doen't allow you to do something and listen for a keypress or other event to fire and rudely interrupt it, but what it does is pause for either a keypress or a mouse click.
Due to my ongoing vision problems I can't look it up in the Hugo manual, but if you look there for the PAUSE command, it mentions that a system variable returns a value informing you whether the game continued because of a keypress, and if so, which key, or if a mouse click, what X,Y position the click was at within the application window. Given this, you could display a graphic image - or even in text if you like - say a 1000x500 pixel image, divided into quadrants. They have text painted on each of them
* Click here or press '1' to skip this one exit
* Click here or pres '5' to skip the next five exits
* Click here or press 't' or 'T' to skip 10 exits
* Click here or press ENTER to skip all exIts until you reach your destination
Then in text below the sign it says:
Click outside the sign or press SPACE to take this exit. Choose where you want to go now.
Now, if you get an invalid keystroke or a click on the lines between the boxes, you can tell hem to try again. You know how big each box is, X tells you which of the two, Y tells you which one, or the click was below the sign.
Another possibility. In the SYSTEM command - I think it's SYSTEM(61) but don't hold me to that - there is supposed to be a keypress check or key read function. either it does not work or I was using it incorrectly, I'm not sure, but I could not get it to work. As it turns out, I was thinking of doing something similar, a bus or train moving through its stops until you signal (or indicate to exit the train because) you are at your stop.
Another possibility: I'm using the stock Hugo runtime system. Nikos' HUGOR replacement for the standard runtime might provide this functionality, either in the documented SYSTEM call or having already added it as an undocumented one. Or if it's not there you could try wheedling Nikos into adding an additional (undocumented) SYSTEM call to provide character input without having to PAUSE.
Or as a last resort (if you read C) read the Hugo runtime (or Nikos' HUGOR runtime) system source for the SYSTEM command and find out what that system call for reading a key does, if anything. If you're
really desperate, add the processing code (if you know C) yourself.
Good luck.
"When I die, I want it easy and peaceful in my sleep, like my uncle.
Not screaming and crying like his passengers."