Hmmm, gotta say I don't like the look of that code...
... Then again, my response is also a mess - but it's a mess that you can easily expand upon (well, easily if you know what's going on).
This is a menu 'system' which allows the user to have STRUCTURED menus (what's more, you can even make them up on the fly if you're good at it!).
The downside?
VERY confusing to use array indexes to map out menus, and also the strings themselves are confusing if you don't know what's going on.
Also, you can't kick off scripts which is bad - only way I can think of doing that would be to look in the string and /try/ to do it that way (I say try because Quest is very limited in this respect).
ANYWAY, load up the game, give it a try out, see what you think.
Menu's are like this:
convo[1000] (STARTING remark with up to 9 questions after that)
convo[1001] (answer to first question from the STARTING point, with up to 9 questions after that)
convo[1002] (answer to second question from the STARTING point, as first question)
convo[1003 or 1004 or 100N] (answer to reletive question from STARTING point)
NOW... Say your first question went into another menu with 9 questions...
convo[1011] (answer to first question, from the sub-menu for first question from starting point...)
convo[1021] (answer to SECOND question, same as directly above entry)
SO, it can be mapped like so:
[1000] -+ [1001] --+ [1011]
| + [1021]
| + [1031]
| + [1041]
|
+ [1002] --+ [1012]
| + [1022]
+ [1003]
+ [1004]
etc.
Hopefully these don't ever cross (I haven't had enough forethought to see if they do or not).
And as always, the code may totally crash your game if you have more then 9 questions in one section (or at any time really, as there's not a massive amount of error checking)..
I think the logic is sound and the code should be at least wobble-proof.
[EDIT]
DAMN, Elex got here before I posted mine!!

... Elex, please use select cases instead of those IF's...