Since there are no functions for that in Danmakufu, something like this, as discussed in P.24 of the thread, would be helpful.
#TouhouDanmakufu
#Title[MENU FTW]
#Text[This is the description. Did you know that? Oh, sorry.]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let number = 0;
let orange = [255, 142, 78];
let white = 255;
let r1 = 0; let g1 = 0; let b1 = 0;
let r2 = 0; let g2 = 0; let b2 = 0;
let r3 = 0; let g3 = 0; let b3 = 0;
@Initialize {
SetLife(1);
}
@MainLoop {
//////////////////////////////////
ForbidBomb(true); ForbidShot(true);
///////////////////////////////////
if(number == 0) {
r1 = white; g1 = white; b1 = white;
r2 = orange[0]; g2 = orange[1]; b2 = orange[2];
r3 = orange[0]; g3 = orange[1]; b3 = orange[2];
}
if(number == 1) {
r2 = white; g2 = white; b2 = white;
r1 = orange[0]; g1 = orange[1]; b1 = orange[2];
r3 = orange[0]; g3 = orange[1]; b3 = orange[2];
}
if(number == 2) {
r3 = white; g3 = white; b3 = white;
r1 = orange[0]; g1 = orange[1]; b1 = orange[2];
r2 = orange[0]; g2 = orange[1]; b2 = orange[2];
}
///////////////////////////////////
if(number < 0) {
number = 0;
}
if(number > 2) {
number = 2;
}
if(GetKeyState(VK_UP) == KEY_PUSH) {
number--;
}
if(GetKeyState(VK_DOWN) == KEY_PUSH) {
number++;
}
//////////////////////////////////
if(GetKeyState(VK_SHOT)==KEY_PUSH) {
VanishEnemy;
//Here you put stuff that happens depending what the variable "number" finally is, blah, blah, blah
}
}
@DrawLoop {
SetFontColor(r1, g1, b1, r1, g1, b1);
DrawText("The first choice", 40, 45, 20, 255);
SetFontColor(r2, g2, b2, r2, g2, b2);
DrawText("Choice 2", 40, 65, 20, 255);
SetFontColor(r3, g3, b3, r3, g3, b3);
DrawText("Choice 3", 40, 85, 20, 255);
}
@Finalize {
ForbidBomb(false); ForbidShot(false);
SetPlayerX(GetCenterX); SetPlayerY(GetClipMaxY-75);
}
}
This shows three options. put something similar to this in a stage script would be OK.