#include "./SceneCommon.txt"

@Initialize
{
	SetAutoDeleteObject(true);
	T_Background_2(0,0,255);
	T_Black;
	ascent(j in -3..4)
	{
		ascent(i in -3..4)
		{
			T_Background(i*0.5,j*0.5,5);
		}
	}
	T_Menu();
}

@MainLoop
{
	yield;
}

@Finalize
{
}

task T_Menu
{
	let selectIndex = 0;	// Iʒu
	
	task T_MenuItem(let index,let mx,let my,let text)
	{
		let objText = CreateTextObject(mx,my,20,text);
		let AlphaRate = 1;
//		T_Slide;
		loop
		{
			if(index == selectIndex)
			{
				ObjRender_SetAlpha(objText,255*AlphaRate);
//				T_Effect(objText);
//				ObjText_SetFontBorderType(obj,BORDER_FULL);
				ObjRender_SetAlpha(objText,255*AlphaRate);
				ObjText_SetFontSize(objText,20);
				while(index == selectIndex)
				{
					yield;
				}
			}
			else
			{
//				ObjText_SetFontBorderType(obj,BORDER_NONE);
				ObjRender_SetAlpha(objText,150*AlphaRate);
				ObjText_SetFontSize(objText,16);
			}
			yield;
		}
		
/*		task T_Slide
		{
			while(ObjRender_GetX(objText) > mx)
			{
				ObjRender_SetX(objText,ObjRender_GetX(objText)-6);
				AlphaRate += 1/10;
				yield;
			}
		}*/
		
/*		task T_Effect(obj)
		{
			let AngleX = 0;
			loop(10)
			{
				AngleX += 36;
				ObjRender_SetAngleX(obj,AngleX);
				yield;
			}
		}*/
	}
	
	// j[zu
	let mx = 300;
	let my = 200;
	let texts = ["Ē", "^Cg","vCۑ"];
	var countMenu = length(texts);
	ascent(iText in 0 .. countMenu)
	{
		T_MenuItem(iText,mx,my,texts[iText]);
		my += 32;
	}
	
	//L[ԂZbg܂őҋ@
	while(GetVirtualKeyState(VK_OK) != KEY_FREE){	yield;	}
	//j[I
	let frameKeyHold = 0;	// L[ςȂt[
	loop
	{
		if(GetVirtualKeyState(VK_OK) == KEY_PULL)
		{
			let listResult = [RESULT_RETRY, RESULT_END, RESULT_SAVE_REPLAY];
			SetScriptResult(listResult[selectIndex]);
			CloseScript(GetOwnScriptID());
			return;
		}
		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 == 24 || (frameKeyHold > 24 && (frameKeyHold % 10 == 0)))
			{
				selectIndex--;
			}
		}
		else if(GetVirtualKeyState(VK_DOWN) == KEY_HOLD)
		{
			frameKeyHold++;
			if(frameKeyHold == 24 || (frameKeyHold > 24 && (frameKeyHold % 10 == 0)))
			{
				selectIndex++;
			}
		}
		else
		{
			frameKeyHold = 0;
		}
		
		if(selectIndex < 0) 
		{
			selectIndex = countMenu - 1;
		}
		else
		{
			selectIndex %= countMenu;
		}
		
		yield;
	}
}
