Removing numbers from Menu
fogmike
27 May 2014, 23:16Hi there,
I'm making a game in TA mode that's reminiscent of a gamebook (I just needed the power behind TA), and it occurred to me that rather than using a lot of semi-horrific workarounds to get the results I want, I could just list the possible choices in any room as a menu. But those numbers before each option (1) ... , 2) .... etc) break the immersion. Is there an easy way to get rid of this? All I want to see when the menu is displayed is the hyperlinked actual text for each option.
Thanks!
I'm making a game in TA mode that's reminiscent of a gamebook (I just needed the power behind TA), and it occurred to me that rather than using a lot of semi-horrific workarounds to get the results I want, I could just list the possible choices in any room as a menu. But those numbers before each option (1) ... , 2) .... etc) break the immersion. Is there an easy way to get rid of this? All I want to see when the menu is displayed is the hyperlinked actual text for each option.
Thanks!

jaynabonne
28 May 2014, 02:58The easiest way to do that would be to copy and paste the following into your game, in Code View mode, just above the closing </asl> tag at the end of the file. Be sure to back up your game first! If something goes wrong, it's easier to copy from a backup than to try to undo edits. Here is the code:
This is a drop-in replacement for the core "ShowMenu" function, which has been modified to not print the numbers.
A completely different route is to not use menus but rather just print out {cmd:xxx:yyy} text elements, which will give you the links to click on. The downside to that is needing to create a command for each option, but since commands can be per-room, you can at least group the commands with the rooms. I'm not pushing one over the other - just listing options.
<function name="ShowMenu" parameters="caption, options, allowCancel, callback">
<![CDATA[
outputsection = StartNewOutputSection()
msg (caption)
count = 0
game.menuoptionskeys = NewStringList()
foreach (option, options) {
list add (game.menuoptionskeys, option)
count = count + 1
if (TypeOf(options) = "stringlist") {
optionText = option
}
else {
optionText = StringDictionaryItem(options, option)
}
msg ("<a class=\"cmdlink\" style=\"" + GetCurrentLinkTextFormat() + "\" onclick=\"ASLEvent('ShowMenuResponse','" + option + "')\">" + optionText + "</a>")
}
EndOutputSection(outputsection)
game.menuoptions = options
game.menuallowcancel = allowCancel
game.menucallback = callback
game.menuoutputsection = outputsection
]]>
</function>
This is a drop-in replacement for the core "ShowMenu" function, which has been modified to not print the numbers.
A completely different route is to not use menus but rather just print out {cmd:xxx:yyy} text elements, which will give you the links to click on. The downside to that is needing to create a command for each option, but since commands can be per-room, you can at least group the commands with the rooms. I'm not pushing one over the other - just listing options.

fogmike
28 May 2014, 08:52Thank you! This is what I was hoping for, a replacement to the default menu code - not quite technically up to scratch enough to figure it out.
As for commands I thought about it, but menu seems like the best way to disable the other options. I know how to get a command hyperlink to disable after clicking, but wasn't sure how to disable all the commands in a choice after picking one.
Thanks again!
As a side-note, maybe a possible future feature for Quest would be to have an in-built way of (in TA mode) having some hyperlinked text that simply then runs a script, so you could make far more complex gamebook-style ideas much easier.
As for commands I thought about it, but menu seems like the best way to disable the other options. I know how to get a command hyperlink to disable after clicking, but wasn't sure how to disable all the commands in a choice after picking one.
Thanks again!
As a side-note, maybe a possible future feature for Quest would be to have an in-built way of (in TA mode) having some hyperlinked text that simply then runs a script, so you could make far more complex gamebook-style ideas much easier.