NarumiSTG_HyperSnowDrifter/script/Package_MenuLib.dnh

595 lines
33 KiB
Plaintext
Raw Normal View History

2023-01-26 11:34:56 +00:00
<EFBFBD><EFBFBD>task TConfigScene{
// Credit: Kobito
let bEndTitleScene = false;
// BGM, SE, Life, BG, Skip, PlayerShot, Item
let settingDefault = [100, 100, 3, 100, 60, 60, 0];
let setting = [0, 0, 0, 0, 0, 0, 0];
let settingMax = [100, 100, 999, 100, 100, 100, 3];
let holdInterval = [2, 2, 1, 2, 2, 2, 30];
setting[0] = GetAreaCommonData("Config", "BGMVol", 100);
setting[1] = GetAreaCommonData("Config", "SEVol", 100);
setting[2] = GetAreaCommonData("Config", "StartingLife", 3);
setting[3] = GetAreaCommonData("Config", "BGOpacity", 255);
setting[4] = GetAreaCommonData("Config", "PlayerShotOpacity", 60);
setting[5] = GetAreaCommonData("Config", "ItemOpacity", 60);
setting[6] = GetAreaCommonData("Config", "EffectCut", 0);
let selectIndex = 0;
var countMenu = 8;
let texts = [0, 0, 0, 0, 0, 0, 0, 0];
let objWarning = CreateTextObject(
GetScreenWidth()/2, 9*GetScreenHeight()/12, [32, 40][lang],
["High scores are only saved with 3 starting lives or fewer.[r]Press X/Cancel to save settings and return to the menu.",
"<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<1C><1D><13>_0<5F>0`0Q0<51>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0o0<18>2<EFBFBD>W0~0Y00[r]X/CANCEL<1A><>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0h0<68>0<EFBFBD>0<EFBFBD>0<EFBFBD>0k00^<5E>0"][lang], "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<08><>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <09> ver2 Bold",
0xFFFFFF, 0xFFFFFF,
0xFF6D64, 35/10,
2
);
ObjText_SetHorizontalAlignment(objWarning, ALIGNMENT_CENTER);
function <int> TMenuItem(
let index,
float mx, my, size,
string text
)
{
let objText = CreateTextObject(
mx, my, size,
text, "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<08><>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <09> ver2 Bold",
0xFFFFFF, 0xFFFFFF,
0x000000, size/10,
2
);
//ObjText_SetHorizontalAlignment(objText, ALIGNMENT_CENTER);
async{
while(!bEndTitleScene)
{
if(index == selectIndex){ObjRender_SetColor(objText, 255, 255, 255);}
else{ObjRender_SetColor(objText, 100, 100, 100);}
yield;
}
Obj_Delete(objText);
}
return objText;
}
float mx = GetScreenWidth()/2-GetScreenWidth()/3;
float my = 1.5*GetScreenHeight()/12;
ascent(i in 0..8){texts[i] = TMenuItem(i, mx, my+i*GetScreenHeight()/15, 35, "");}
ObjText_SetText(texts[7], ["Reset to Default", "DEFAULT"][lang]);
function ChangeSetting(a, b){
setting[a] += b;
if(setting[a] < 0){setting[a] = settingMax[a];}
else if(setting[a] > settingMax[a]){setting[a] = 0;}
}
let configText = [
["BGM Volume: ", "SFX Volume:", "Starting Lives:", "Background Opacity:", "Player Shot Opacity:", "Item Opacity: ", "Effect Cut Level: "],
["BGM Vol: ", "SFX Vol: ", "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0: ", "̀ofn0<0F>f:", "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<0F>f: ", "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<0F>f:", "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0:"]
];
function UpdateTexts{
ObjText_SetText(texts[0], configText[lang][0]~" " ~ IntToString(setting[0]));
ObjText_SetText(texts[1], configText[lang][1]~" " ~ IntToString(setting[1]));
ObjText_SetText(texts[2], configText[lang][2]~" " ~ IntToString(setting[2]));
ObjText_SetText(texts[3], configText[lang][3]~" " ~ IntToString(setting[3]) ~ "%");
alternative(setting[4])
case(0){ObjText_SetText(texts[4], configText[lang][4]~" " ~ IntToString(setting[4]) ~ [" (Why???)", " (j0<6A>0g0???)"][lang]);}
case(60){ObjText_SetText(texts[4],configText[lang][4]~" " ~ IntToString(setting[4]) ~ [" (Recommended)", " (<00>c<EFBFBD><63>)"][lang]);}
case(100){ObjText_SetText(texts[4],configText[lang][4]~" " ~ IntToString(setting[4]) ~ [" (Eye-Blinding)", " (<06>
N)"][lang]);}
others{ObjText_SetText(texts[4], configText[lang][4]~" " ~ IntToString(setting[4]));}
alternative(setting[5])
case(0){ObjText_SetText(texts[5], configText[lang][5]~" " ~ IntToString(setting[5]) ~ [" (Why???)", " (j0<6A>0g0???)"][lang]);}
case(60){ObjText_SetText(texts[5], configText[lang][5]~" " ~ IntToString(setting[5]) ~ [" (Recommended)", " (<00>c<EFBFBD><63>)"][lang]);}
case(100){ObjText_SetText(texts[5], configText[lang][5]~" " ~ IntToString(setting[5]) ~ [" (Eye-Blinding)", " (<06>
N)"][lang]);}
others{ObjText_SetText(texts[5], configText[lang][5]~" " ~ IntToString(setting[5]));}
alternative(setting[6])
case(0){ObjText_SetText(texts[6], configText[lang][6]~ " " ~ IntToString(setting[6]) ~ [" (Full Effects)", " (hQ萨0<E890A8>0<EFBFBD>0<EFBFBD>0<EFBFBD>0)"][lang]);}
case(1){ObjText_SetText(texts[6], configText[lang][6]~ " " ~ IntToString(setting[6]) ~ [" (No Item Popups)", " (<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0X0<58>0j0D0)"][lang]);}
case(2){ObjText_SetText(texts[6], configText[lang][6]~ " " ~ IntToString(setting[6]) ~ [" (No Explosion Effects)", " (rzv<7A>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0X0<58>0j0D0)"][lang]);}
case(3){ObjText_SetText(texts[6], configText[lang][6]~ " " ~ IntToString(setting[6]) ~ [" (No Effects)", " (<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0X0<58>0j0D0)"][lang]);}
others{ObjText_SetText(texts[6], configText[lang][6]~ " " ~ IntToString(setting[6]));}
}
UpdateTexts();
while(GetVirtualKeyState(VK_OK) != KEY_FREE){yield;}
let frameKeyHold = 0;
let frameKeyHoldSide = 0;
loop{
UpdateTexts();
if(GetVirtualKeyState(VK_CANCEL) == KEY_PUSH){
TTitleScene();
break;
}
// Select option to configure
if(GetVirtualKeyState(VK_UP) == KEY_PUSH){selectIndex--;}
else if(GetVirtualKeyState(VK_DOWN) == KEY_PUSH){selectIndex++;}
else if(GetVirtualKeyState(VK_UP) == KEY_HOLD){
frameKeyHold++;
if(frameKeyHold == 30 || (frameKeyHold > 30 && (frameKeyHold % 10 == 0))){selectIndex--;}
}
else if(GetVirtualKeyState(VK_DOWN) == KEY_HOLD){
frameKeyHold++;
if(frameKeyHold == 30 || (frameKeyHold > 30 && (frameKeyHold % 10 == 0))){selectIndex++;}
}
else{frameKeyHold = 0;}
if(selectIndex < 0) {selectIndex = countMenu - 1;}
else{selectIndex %= countMenu;}
if(GetVirtualKeyState(VK_RIGHT) == KEY_HOLD || GetVirtualKeyState(VK_LEFT) == KEY_HOLD){frameKeyHoldSide++;}
else{frameKeyHoldSide = 0;}
if(GetVirtualKeyState(VK_RIGHT) == KEY_PUSH || GetVirtualKeyState(VK_RIGHT) == KEY_HOLD){
if(GetVirtualKeyState(VK_RIGHT) == KEY_PUSH || (frameKeyHoldSide >= 30 && frameKeyHoldSide % holdInterval[selectIndex] == 0)){
if (selectIndex >= 9){}
else{ChangeSetting(selectIndex, 1);}
}
}
else if(GetVirtualKeyState(VK_LEFT) == KEY_PUSH || GetVirtualKeyState(VK_LEFT) == KEY_HOLD){
if(GetVirtualKeyState(VK_LEFT) == KEY_PUSH || (frameKeyHoldSide >= 30 && frameKeyHoldSide % holdInterval[selectIndex] == 0)){
if (selectIndex >= 9){}
else{ChangeSetting(selectIndex, -1);}
}
}
if(selectIndex == 7 && GetVirtualKeyState(VK_OK) == KEY_PUSH){
ascent(i in 0..6){
setting[i] = settingDefault[i];
selectIndex = 0;
}
}
SetAreaCommonData("Config", "BGMVol", setting[0]);
SetAreaCommonData("Config", "SEVol", setting[1]);
SetAreaCommonData("Config", "StartingLife", setting[2]);
SetAreaCommonData("Config", "BGOpacity", setting[3]);
SetAreaCommonData("Config", "PlayerShotOpacity", setting[4]);
SetAreaCommonData("Config", "ItemOpacity", setting[5]);
SetAreaCommonData("Config", "EffectCut", setting[6]);
ObjSound_SetVolumeRate(objTitleBGM, 75*GetAreaCommonData("Config", "BGMVol", 100)*0.01);
ObjText_SetText(texts[7], ["Reset to Default", "DEFAULT"][lang]);
ObjText_SetText(objWarning,0["High scores are only saved with 3 starting lives or fewer.[r]Press X/Cancel to save settings and return to the menu.",0"<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<1C><1D><13>_0<5F>0`0Q0<51>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0o0<18>2<EFBFBD>W0~0Y00[r]X/CANCEL<1A><>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0h0<68>0<EFBFBD>0<EFBFBD>0<EFBFBD>0k00^<5E>0"][lang]);
//SetSoundDivisionVolumeRate(SOUND_BGM, GetAreaCommonData("Config", "BGMVol", 100)*0.01);
//SetSoundDivisionVolumeRate(SOUND_SE, GetAreaCommonData("Config", "SEVol", 100)*0.01);
yield;
}
SaveCommonDataAreaA2("Config", "script/GunnerParade/config.dat");
bEndTitleScene = true;
Obj_Delete(objWarning);
}
task TDifficultySelect(){
//<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0M<30>n
let mx = GetScreenWidth()/2;
let my = 1*GetScreenHeight()/5;
bool bEndTitleScene = false;
int text = CreateTextObject(
mx, my*4, 36,
"", "Unispace",
0xFFFFFF, 0xFFFFFF,
0x000000, 4,
4
);
ObjText_SetHorizontalAlignment(text, ALIGNMENT_CENTER);
ObjText_SetAutoTransCenter(text, true);
let textArray = [
"A beginner-friendly difficulty.[r]Enemy patterns are reigned in for a more lighthearted experience.[r][font size=30 tc=(255, 132, 141)]EXTENDS AT: 250m, 500m, 1b, 1.8b",
"The usual, hectic experience.[r]The game tailors its difficulty to your skill level fully.[r][font size=30 tc=(255, 132, 141)]EXTENDS AT: 400m, 800m, 1.5b, 2.5b",
"The ultimate difficulty.[r]Rank is locked to its highest - there's no holding back![r][font size=30 tc=(255, 132, 141)]EXTENDS AT: EVERY 1BIL"
];
int img_NV = _Create2DImage(dirLib ~ "Difficulty_Novice.png" , [0, 0, 1200, 1080]);
int img_ST = _Create2DImage(dirLib ~ "Difficulty_Standard.png" , [0, 0, 1200, 1080]);
int img_EX = _Create2DImage(dirLib ~ "Difficulty_Extra.png" , [0, 0, 1200, 1080]);
int[] imgArr = [img_NV, img_ST, img_EX];
ascent(i in 0..3){
ObjSprite2D_SetDestCenter(imgArr[i]);
ObjRender_SetScaleXYZ(imgArr[i], 0.75);
ObjRender_SetAlpha(imgArr[i], 180);
Obj_SetRenderPriorityI(imgArr[i], 3);
ObjRender_SetPosition(imgArr[i], (1.5 + 2 * i) * GetScreenWidth()/7, GetScreenHeight()/2-64, 1);
Obj_SetValue(imgArr[i], 'V', i);
}
//Obj_SetVisible(imgArcade, false);
//Obj_SetVisible(imgGentle, false);
let INDEX_NOVICE = 0;
let INDEX_STANDARD = 1;
let INDEX_EXTRA = 2;
let selectIndex = 0;//x<><78>bMOn
int countMenu = 3;
//<00>0<EFBFBD>0<EFBFBD>rKaL0<4C>0<EFBFBD>0<EFBFBD>0<EFBFBD>0U0<55>0<EFBFBD>0~0g0<67>__j
while(GetVirtualKeyState(VK_OK) != KEY_FREE){yield;}
//<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0x<30><78>b<EFBFBD>Qt
let frameKeyHold = 0;//<00>0<EFBFBD>0<EFBFBD>bW0c0q0j0W0<57>0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe
loop
{
// Visibility
for each (int img in ref imgArr){
if (Obj_GetValue(img, "V") == selectIndex)
{
ObjRender_SetAlpha(img, 255);
}
else
{
ObjRender_SetAlpha(img, 120);
}
}
ObjText_SetText(text, textArray[selectIndex]);
if(GetVirtualKeyState(VK_CANCEL) == KEY_PUSH){
TTitleScene();
break;
}
else if(GetVirtualKeyState(VK_OK) == KEY_PUSH)
{
if(selectIndex == INDEX_NOVICE)
{
SetCommonData("Difficulty", "Novice");
TPlayer();
}
else if(selectIndex == INDEX_STANDARD)
{
SetCommonData("Difficulty", "Standard");
TPlayer();
}
else if(selectIndex == INDEX_EXTRA)
{
SetCommonData("Difficulty", "Extra");
TPlayer();
}
break;
}
//<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>y<EFBFBD>R
if(GetVirtualKeyState(VK_LEFT) == KEY_PUSH)
{
selectIndex--;
}
else if(GetVirtualKeyState(VK_RIGHT) == KEY_PUSH)
{
selectIndex++;
}
else if(GetVirtualKeyState(VK_LEFT) == KEY_HOLD)
{
frameKeyHold++;
if(frameKeyHold == 30 || (frameKeyHold > 30 && (frameKeyHold % 10 == 0)))
{
selectIndex--;
}
}
else if(GetVirtualKeyState(VK_RIGHT) == KEY_HOLD)
{
frameKeyHold++;
if(frameKeyHold == 30 || (frameKeyHold > 30 && (frameKeyHold % 10 == 0)))
{
selectIndex++;
}
}
else
{
frameKeyHold = 0;
}
if(selectIndex < 0)
{
selectIndex = countMenu - 1;
}
else
{
selectIndex %= countMenu;
}
yield;
}
bEndTitleScene = true;
Obj_Delete(imgArr[0]);
Obj_Delete(imgArr[1]);
Obj_Delete(imgArr[2]);
Obj_Delete(text);
}
task TPlayer(){
bool bEndTitleScene = false;
let INDEX_LAVENDER= 0;
let INDEX_KOURYUU = 1;
let DATA_ARR = [["Lavender", GetCommonData("Difficulty", "Standard")], ["Kouryuu", GetCommonData("Difficulty", "Standard")]];
let selectIndex = 0;//x<><78>bMOn
//<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0M<30>n
let mx = GetScreenWidth()/2;
let my = 4*GetScreenHeight()/5;
int text = CreateTextObject(
mx, my, 36,
"", "Unispace",
0xFFFFFF, 0xFFFFFF,
0x000000, 2,
8
);
int nameText = CreateTextObject(
mx, my-72, 48,
"", "Unispace",
0xFFFFFF, 0xFFFFFF,
0x000000, 4,
8
);
ObjText_SetHorizontalAlignment(text, ALIGNMENT_CENTER);
ObjText_SetAutoTransCenter(text, true);
ObjText_SetHorizontalAlignment(nameText, ALIGNMENT_CENTER);
ObjText_SetAutoTransCenter(nameText, true);
let textArray = [
"A talented potion-making witch with a wide-reaching shottype.[r]Her wide range and ammo-efficient special weapon allow for a balanced playstyle.",
"A half-dragon blacksmith with a highly precise forwards shottype.[r]His special weapon is ammo-consuming but erases bullets,[r]making it ideal for defensive purposes."
];
int img_LM = _Create2DImage(dirLib ~ "Character_Lavender.png" , [0, 0, 960, 1080]);
int img_KE = _Create2DImage(dirLib ~ "Character_Kouryuu.png" , [0, 0, 960, 1080]);
int[] imgArr = [img_LM, img_KE];
ascent(i in 0..2){
ObjSprite2D_SetDestCenter(imgArr[i]);
ObjRender_SetScaleXYZ(imgArr[i], 1);
ObjRender_SetAlpha(imgArr[i], 180);
Obj_SetRenderPriorityI(imgArr[i], 3);
Obj_SetValue(imgArr[i], 'V', i);
}
ObjRender_SetPosition(imgArr[0], 1 * GetScreenWidth()/3 - 96, GetScreenHeight()/2, 1);
ObjRender_SetPosition(imgArr[1], 2 * GetScreenWidth()/3 + 96, GetScreenHeight()/2, 1);
var countMenu = 2;
//<00>0<EFBFBD>0<EFBFBD>rKaL0<4C>0<EFBFBD>0<EFBFBD>0<EFBFBD>0U0<55>0<EFBFBD>0~0g0<67>__j
while(GetVirtualKeyState(VK_OK) != KEY_FREE){yield;}
//<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0x<30><78>b<EFBFBD>Qt
let frameKeyHold = 0;//<00>0<EFBFBD>0<EFBFBD>bW0c0q0j0W0<57>0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe
loop
{
ObjText_SetText(nameText,
"HIGH SCORE: [font bc=(255,178,36)]" ~ DigitToCommaArray(GetAreaCommonData("Data_" ~ DATA_ARR[selectIndex][0], "HighScore_" ~ DATA_ARR[selectIndex][1], 0))
);
if(GetVirtualKeyState(VK_CANCEL) == KEY_PUSH){
TTitleScene();
break;
}
else if(GetVirtualKeyState(VK_OK) == KEY_PUSH)
{
if(selectIndex == INDEX_LAVENDER)
{
pathPlayer = PlayerArray[0];
TStageScene("", pathPlayer, GetAreaCommonData("Config", "StartingLife", 3), GetAreaCommonData("Config", "DialogueSkip", 0), false);
}
else if(selectIndex == INDEX_KOURYUU)
{
pathPlayer = PlayerArray[1];
TStageScene("", pathPlayer, GetAreaCommonData("Config", "StartingLife", 3), GetAreaCommonData("Config", "DialogueSkip", 0), false);
}
break;
}
if(selectIndex == INDEX_LAVENDER)
{
ObjText_SetText(text, textArray[0]);
ObjRender_SetAlpha(img_LM, 255);
ObjRender_SetAlpha(img_KE, 160);
}
else if(selectIndex == INDEX_KOURYUU)
{
ObjText_SetText(text, textArray[1]);
ObjRender_SetAlpha(img_KE, 255);
ObjRender_SetAlpha(img_LM, 160);
}
//<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>y<EFBFBD>R
if(GetVirtualKeyState(VK_LEFT) == KEY_PUSH)
{
selectIndex--;
}
else if(GetVirtualKeyState(VK_RIGHT) == KEY_PUSH)
{
selectIndex++;
}
else if(GetVirtualKeyState(VK_LEFT) == KEY_HOLD)
{
frameKeyHold++;
if(frameKeyHold == 30 || (frameKeyHold > 30 && (frameKeyHold % 10 == 0)))
{
selectIndex--;
}
}
else if(GetVirtualKeyState(VK_RIGHT) == KEY_HOLD)
{
frameKeyHold++;
if(frameKeyHold == 30 || (frameKeyHold > 30 && (frameKeyHold % 10 == 0)))
{
selectIndex++;
}
}
else
{
frameKeyHold = 0;
}
if(selectIndex < 0)
{
selectIndex = countMenu - 1;
}
else
{
selectIndex %= countMenu;
}
yield;
}
Obj_Delete(img_LM);
Obj_Delete(img_KE);
Obj_Delete(text);
Obj_Delete(nameText);
bEndTitleScene = true;
}
task TManualScene(){
//<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0M<30>n
let mx = GetScreenWidth()/2;
let my = 1*GetScreenHeight()/5;
bool bEndTitleScene = false;
int img_1 = _Create2DImage(dirLib ~ "NarumiSTG_Manual.png", [0, 0, 1280, 720]);
ascent(i in 0..1){
ObjSprite2D_SetDestCenter(img_1);
ObjRender_SetScaleXYZ(img_1, 1);
ObjRender_SetAlpha(img_1, 255);
Obj_SetRenderPriorityI(img_1, 3);
ObjRender_SetPosition(img_1, 1280/2, 720/2, 1);
Obj_SetValue(img_1, 'V', i);
}
//Obj_SetVisible(imgArcade, false);
//Obj_SetVisible(imgGentle, false);
let INDEX_1 = 0;
let selectIndex = 0;//x<><78>bMOn
int countMenu = 1;
//<00>0<EFBFBD>0<EFBFBD>rKaL0<4C>0<EFBFBD>0<EFBFBD>0<EFBFBD>0U0<55>0<EFBFBD>0~0g0<67>__j
while(GetVirtualKeyState(VK_OK) != KEY_FREE){yield;}
//<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0x<30><78>b<EFBFBD>Qt
let frameKeyHold = 0;//<00>0<EFBFBD>0<EFBFBD>bW0c0q0j0W0<57>0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe
loop
{
// Visibility
if(GetVirtualKeyState(VK_CANCEL) == KEY_PUSH){
TTitleScene();
break;
}
//<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>y<EFBFBD>R
if(GetVirtualKeyState(VK_LEFT) == KEY_PUSH)
{
selectIndex--;
}
else if(GetVirtualKeyState(VK_RIGHT) == KEY_PUSH)
{
selectIndex++;
}
else if(GetVirtualKeyState(VK_LEFT) == KEY_HOLD)
{
frameKeyHold++;
if(frameKeyHold == 30 || (frameKeyHold > 30 && (frameKeyHold % 10 == 0)))
{
selectIndex--;
}
}
else if(GetVirtualKeyState(VK_RIGHT) == KEY_HOLD)
{
frameKeyHold++;
if(frameKeyHold == 30 || (frameKeyHold > 30 && (frameKeyHold % 10 == 0)))
{
selectIndex++;
}
}
else
{
frameKeyHold = 0;
}
if(selectIndex < 0)
{
selectIndex = countMenu - 1;
}
else
{
selectIndex %= countMenu;
}
yield;
}
bEndTitleScene = true;
Obj_Delete(img_1);
}