Menu-based conversation

This is likely too long to ask to be walked through it, I understand, but I haven’t been able to find any tutorials online about how to pull one of these off.

Reading the article on Creating Dynamic Characters in TADS 3 on the TADS webpage, I find that the menu-based approach to NPC communication fits my writing style better. The kind of conversations I’m envisioning function much better in dialogue-tree format than fractioned on an ASK/TELL scheme, so I think it’s well worth the trouble to figure this one out.

The closest thing I’ve managed to do was set up something through a menuItem. This is functionally close to what I want, but the graphical result is pretty off.

[code]peasant: Actor ‘peasant’ ‘Peasant’ @dialogueSystemRoom
dobjFor(TalkTo)
{
action()
{
showPeasantTalk();
}
}
showPeasantTalk()
{
peasantTalk.display();
}
;

peasantTalk: MenuItem ‘Peasant Talk’
;

+MenuLongTopicItem ‘Can you hear me’
'Yes I can. ’
;
+MenuLongTopicItem 'Are we talking? ’
'Yes, seriously. ’
;
dialogueSystemRoom: Room ‘Dialogue System Room’
;
[/code]

The dialogue I’m envisioning (and for that matter, the one described in the article) is more along the lines of a menu of responses being displayed on the main window (Without going to another page or flushing the current page) from which the player would select them by typing something. Such as:

[code]What do you wish to talk about?

A) Who are you?
B) What are you doing?
C) What can change the nature of a man?
D) Nevermind (End conversation)
Select: <- Here inputting A/B/C/D would trigger each choice.[/code]

This would show up following the execution of a TalkTo action, and ideally would look as unintrusive as possible. That is, not flushing the current page, no moving to another page, no requiring a specific button to exit and no [THE END] signal after each response. Ideally, responses should either exit the conversation without further markings or lead to more options. The idea is not to suddenly slap the player with a different type of interface all of a sudden if they’ve been using the command line up to there.

So, is there anywhere I can look up some tutorial on this kind of system?

I don’t know of any tutorial, but there is an extension, qtalk by Greg Boettcher, for creating Photopia-style conversation menus. You could give that a try and see if it fits your requirements.