
let dirCurrent = GetCurrentScriptDirectory();
let GCSD = GetCurrentScriptDirectory();
let stgx=GetStgFrameWidth()/2;
let stgy=GetStgFrameHeight()/2;
let exlife = 0;
@Initialize
{
	SetPauseScriptPath(dirCurrent ~ "Default_Pause.txt");
	SetEndSceneScriptPath(dirCurrent ~"Default_EndScene.txt");
	InitFrame();
	//TContinue;
	//TExtend;
	//TScore();
	//TGraze();
	//TPlayerLife();
	//TPlayerSpell();
	TBossLife();
	TBossTimer();
	TCurrentFps();
	TReplayFps();
}

@MainLoop
{
	yield;
}

@Event
{
	alternative(GetEventType())
	case(EV_START_BOSS_SPELL)
	{
		let path = dirCurrent ~ "Default_System_MagicCircle.txt";
		let id = LoadScript(path);
		StartScript(id);
		DrawScore;
	}
	case(EV_GAIN_SPELL)
	{
		let objScene = GetEnemyBossSceneObjectID();
		let score = ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE);
		TGainSpell(score);
	}
	case(EV_PLAYER_SHOOTDOWN)
	{
		if(GetPlayerLife<0){
		exlife++;
		SetPlayerLife(2);
		}
	}
}

//----------------------------------------------------

task DrawScore{ // Draw score text
	Score;
	BonusText;
	task Score{
		let objText = ObjText_Create();
		let alpha = 0;
		let c = 0;
		ObjText_SetFontSize(objText, 10);
		ObjText_SetFontColorTop(objText, 255, 255, 255);
		ObjText_SetFontColorBottom(objText, 255, 255, 255);
		ObjText_SetFontBorderType(objText, BORDER_FULL);
		ObjText_SetFontBorderColor(objText,128, 128, 128);
		ObjText_SetFontBorderWidth(objText, 2);
		ObjRender_SetPosition(objText,215,43,0);
			while(GetCommonData("IsSpell",false)==true){
			if(c>150){
			if(GetPlayerY>100 && alpha<255){alpha+=10;}
			if(GetPlayerY<=100 && alpha>100){alpha-=10;}
			}
			if(ObjEnemyBossScene_GetInfo(GetEnemyBossSceneObjectID,INFO_PLAYER_SHOOTDOWN_COUNT)==0 && ObjEnemyBossScene_GetInfo(GetEnemyBossSceneObjectID,INFO_PLAYER_SPELL_COUNT)==0 ){
			ObjText_SetText(objText,IntToString(ObjEnemyBossScene_GetInfo(GetEnemyBossSceneObjectID,INFO_SPELL_SCORE)));
			}
			else{
			ObjText_SetText(objText,"Failed");
			}
			ObjRender_SetAlpha(objText,alpha);
			c++;
			yield;
			}
			Obj_Delete(objText);
		}
		task BonusText{
		let objText = ObjText_Create();
		let alpha = 0;
		let c = 0;
		ObjText_SetText(objText,"Bonus :");
		ObjText_SetFontSize(objText, 10);
		ObjText_SetFontColorTop(objText, 255, 255, 255);
		ObjText_SetFontColorBottom(objText, 255, 255, 255);
		ObjText_SetFontBorderType(objText, BORDER_FULL);
		ObjText_SetFontBorderColor(objText,128, 128, 128);
		ObjText_SetFontBorderWidth(objText, 2);
		ObjRender_SetPosition(objText,165,43,0);
			while(GetCommonData("IsSpell",false)==true){
			if(c>150){
			if(GetPlayerY>100 && alpha<255){alpha+=10;}
			if(GetPlayerY<=100 && alpha>100){alpha-=10;}
			}
			ObjRender_SetAlpha(objText,alpha);
			c++;
			yield;
			}
			Obj_Delete(objText);
		}
	}

	task TContinue{
	DrawText(421,250,0);
	DrawText(528,251,1);
			task DrawText(px,py,type){
			let objText = ObjText_Create();
			ObjText_SetFontSize(objText, 15);
			ObjText_SetFontBold(objText, true);
			ObjText_SetFontColorTop(objText, 0, 0, 0);
			ObjText_SetFontColorBottom(objText, 0, 0, 0);
			ObjText_SetFontBorderType(objText, BORDER_FULL);
			ObjText_SetFontBorderColor(objText,192, 0, 192);
			ObjText_SetFontBorderWidth(objText, 2);
			Obj_SetRenderPriority(objText, 1);
			ObjRender_SetX(objText, px);
			ObjRender_SetY(objText, py);
				while(!Obj_IsDeleted(objText)){
				if(type==0){ObjText_SetText(objText, "Continue :");}
				if(type==1){ObjText_SetText(objText, IntToString(exlife));}
				yield;
				}
		}
	}
//----------------------------------------------------

task TExtend{
	DrawText(420,225,0);
	DrawText(528,226,1);
	DrawText(543,226,2);
		task DrawText(px,py,type){
			let objText = ObjText_Create();
			ObjText_SetFontSize(objText, 15);
			ObjText_SetFontBold(objText, true);
			ObjText_SetFontColorTop(objText, 0, 0, 0);
			ObjText_SetFontColorBottom(objText, 0, 0, 0);
			ObjText_SetFontBorderType(objText, BORDER_FULL);
			ObjText_SetFontBorderColor(objText,192, 0, 128);
			ObjText_SetFontBorderWidth(objText, 2);
			Obj_SetRenderPriority(objText, 1);
			ObjRender_SetX(objText, px);
			ObjRender_SetY(objText, py);
				while(!Obj_IsDeleted(objText)){
				if(type==0){ObjText_SetText(objText, "Next Life :");}
				let piece = GetCommonData("Piece",0);
				let ptext = IntToString(piece);
				if(type==1){
				ObjText_SetText(objText, ptext);
				}				
				if(type==2){
				ObjText_SetText(objText, "/4");
				}
				yield;
				}
			}
	}

function InitFrame()
{
	StgFrame;
	DrawDifficulty;
	task DrawDifficulty{
	let path = GetCurrentScriptDirectory() ~ "img/front00.png";
	let obj = ObjPrim_Create(OBJ_SPRITE_2D);
	let value = 0;
	ObjPrim_SetTexture(obj, path);
	ObjRender_SetScaleXYZ(obj,0,0,0);
	while(value==0){
	if(GetCommonData("Difficulty","Easy")=="Normal"){value = 1;}
	if(GetCommonData("Difficulty","Easy")=="Extra"){value = 4;}
	yield;
	}
	MinorEffect;
	while(!Obj_IsDeleted(obj)){
	ObjSprite2D_SetSourceRect(obj, 520, 608+32*value, 520+144, 640+32*value);
	Obj_SetRenderPriority(obj, 1);
	ObjSprite2D_SetDestCenter(obj);
	ObjRender_SetPosition(obj,530,30,0);
	yield;
	}
		task MinorEffect{
			ascent(i in 0..60){
			ObjRender_SetScaleXYZ(obj,0.55,i*0.01,0);
			yield;
			}
			ascent(i in 0..90){
			ObjRender_SetColor(obj,192+63*sin(i*20+90),192+63*sin(i*20+90),192+63*sin(i*20+90));
			yield;
			}
		}
	}
	
	function StgFrame{
	let path = GetCurrentScriptDirectory() ~ "img/Default_SystemBackground.png";
	let obj = ObjPrim_Create(OBJ_SPRITE_2D);
	ObjPrim_SetTexture(obj, path);
	Obj_SetRenderPriority(obj, 0);
	ObjSprite2D_SetSourceRect(obj, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
	ObjSprite2D_SetDestRect(obj, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
	ObjRender_SetAlpha(obj,192);
	}
	function Overused{
	let path = GetCurrentScriptDirectory() ~ "img/Overused.png";
	let obj = ObjPrim_Create(OBJ_SPRITE_2D);
	ObjPrim_SetTexture(obj, path);
	Obj_SetRenderPriority(obj, 1);
	ObjSprite2D_SetSourceRect(obj, 0, 0, 256, 64);
	ObjSprite2D_SetDestRect(obj, 0, 0, 256, 64);
	ObjRender_SetAlpha(obj,192);
	ObjRender_SetPosition(obj,stgx+115,stgy+100,0);
	ObjRender_SetScaleXYZ(obj,1.65,1.65,0);
	ObjRender_SetBlendType(obj,BLEND_ALPHA);
	}
	function AllStars{
	let path = GetCurrentScriptDirectory() ~ "img/Allstars.png";
	let obj = ObjPrim_Create(OBJ_SPRITE_2D);
	ObjPrim_SetTexture(obj, path);
	Obj_SetRenderPriority(obj, 1);
	ObjSprite2D_SetSourceRect(obj, 0, 0, 256, 64);
	ObjSprite2D_SetDestRect(obj, 0, 0, 256, 64);
	ObjRender_SetAlpha(obj,192);
	ObjRender_SetPosition(obj,stgx+165,stgy+175,0);
	ObjRender_SetScaleXYZ(obj,1.35,1.35,0);
	ObjRender_SetBlendType(obj,BLEND_ALPHA);
	}
}

//----------------------------------------------------
//スコア表示
//----------------------------------------------------
task TScore()
{
			let text=ObjPrim_Create(OBJ_SPRITE_2D);
			let img=GetCurrentScriptDirectory()~"img/front01.png";
			ObjPrim_SetTexture(text,img);
			ObjSprite2D_SetSourceRect(text,256,18,300,36);
			ObjSprite2D_SetDestCenter(text);
			ObjRender_SetBlendType(text,BLEND_ALPHA);
			ObjRender_SetScaleXYZ(text,1,1,0);
			Obj_SetRenderPriority(text,1);
			ObjRender_SetPosition(text,441,78,0);

	let pathDigit = GetCurrentScriptDirectory() ~ "img/front00.png";
	let count = 12;

	let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
	ObjPrim_SetTexture(obj, pathDigit);
	ObjRender_SetBlendType(obj, BLEND_ALPHA);
	Obj_SetRenderPriority(obj, 0.1);
	ObjRender_SetY(obj, 70);
	//ObjRender_SetColor(obj,0,0,0);

	while(true)
	{
		let score = GetScore();
		score = min(score, 999999999999);
		let listNum = DigitToArray(score, count);

		ObjSpriteList2D_ClearVertexCount(obj);
		ascent(iObj in 0 .. count)
		{
			let num = listNum[iObj];
			ObjRender_SetX(obj, 490 + iObj * 12);
			ObjSpriteList2D_SetSourceRect(obj, 544+num * 16, 161, 544+(num + 1) * 16, 179);
			ObjSpriteList2D_SetDestRect(obj, 0, 0, 14, 14*1.4);
			ObjSpriteList2D_AddVertex(obj);
		}
		yield;
	}
}

task TGraze()
{
			let text=ObjPrim_Create(OBJ_SPRITE_2D);
			let img=GetCurrentScriptDirectory()~"img/front01.png";
			ObjPrim_SetTexture(text,img);
			ObjSprite2D_SetSourceRect(text,348,18,394,36);
			ObjSprite2D_SetDestCenter(text);
			ObjRender_SetBlendType(text,BLEND_ALPHA);
			ObjRender_SetScaleXYZ(text,1,1,0);
			Obj_SetRenderPriority(text,1);
			ObjRender_SetPosition(text,441,190,0);

	//得点
	let pathDigit = GetCurrentScriptDirectory() ~ "img/front00.png";
	
	let count = 5;

	let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
	ObjPrim_SetTexture(obj, pathDigit);
	ObjRender_SetBlendType(obj, BLEND_ALPHA);
	Obj_SetRenderPriority(obj, 0.1);
	ObjRender_SetY(obj, 180);
	ObjRender_SetScaleXYZ(obj,0.9,0.9,0);
	ObjRender_SetColor(obj,256,256,256);
	while(true)
	{
		let graze = GetGraze();
		graze = min(graze, 99999);
		let listNum = DigitToArray(graze, count);
		count = length(listNum);

		ObjSpriteList2D_ClearVertexCount(obj);
		ascent(iObj in 0 .. count)
		{
			let num = listNum[iObj];
			ObjRender_SetX(obj, 574 + iObj * 12);
			ObjSpriteList2D_SetSourceRect(obj, 544+num * 16, 161, 544+(num + 1) * 16, 179);
			ObjSpriteList2D_SetDestRect(obj, 0, 0, 14, 14*1.5);
			ObjSpriteList2D_AddVertex(obj);
		}
		yield;
	}
}


//----------------------------------------------------
//残機表示
//----------------------------------------------------
task TPlayerLife
{
	TText;
	ascent(i in 0..8){
	EmptyLife(stgx+315+i*17);
	RealLife(stgx+315+i*17,i);
	}
		task EmptyLife(px){
		let obj=ObjPrim_Create(OBJ_SPRITE_2D);
		let img=GetCurrentScriptDirectory()~"img/front00.png";
		ObjPrim_SetTexture(obj,img);
		ObjSprite2D_SetSourceRect(obj,832,0,864,36);
		ObjSprite2D_SetDestCenter(obj);
		ObjRender_SetBlendType(obj,BLEND_ALPHA);
		ObjRender_SetScaleXYZ(obj,0.6,0.6,0);
		Obj_SetRenderPriority(obj,1);
		ObjRender_SetPosition(obj,px,120,0);
	}
			task  RealLife(px,num){
			let obj=ObjPrim_Create(OBJ_SPRITE_2D);
			let img=GetCurrentScriptDirectory()~"img/front00.png";
			ObjPrim_SetTexture(obj,img);
			ObjSprite2D_SetSourceRect(obj,991,0,1022,36);
			ObjSprite2D_SetDestCenter(obj);
			ObjRender_SetBlendType(obj,BLEND_ALPHA);
			ObjRender_SetScaleXYZ(obj,0.6,0.6,0);
			Obj_SetRenderPriority(obj,1);
			ObjRender_SetPosition(obj,px-2,120,0);
			while(true){
			let point = GetPlayerLife();
			if(point>num){ObjRender_SetAlpha(obj,255);}
			else{ObjRender_SetAlpha(obj,0);}
			yield;
			}
	}
		task TText{
			let obj=ObjPrim_Create(OBJ_SPRITE_2D);
			let img=GetCurrentScriptDirectory()~"img/front01.png";
			ObjPrim_SetTexture(obj,img);
			ObjSprite2D_SetSourceRect(obj,256,36,304,54);
			ObjSprite2D_SetDestCenter(obj);
			ObjRender_SetBlendType(obj,BLEND_ALPHA);
			ObjRender_SetScaleXYZ(obj,1,1,0);
			Obj_SetRenderPriority(obj,1);
			ObjRender_SetPosition(obj,stgx+250,120,0);
			}
}

task TPlayerSpell
{
	TText;
	ascent(i in 0..8){
	EmptyBomb(stgx+315+i*17);
	RealBomb(stgx+315+i*17,i);
	}
		task EmptyBomb(px){
		let obj=ObjPrim_Create(OBJ_SPRITE_2D);
		let img=GetCurrentScriptDirectory()~"img/front00.png";
		let c = 255;
		ObjPrim_SetTexture(obj,img);
		ObjSprite2D_SetSourceRect(obj,832,36,864,75);
		ObjSprite2D_SetDestCenter(obj);
		ObjRender_SetBlendType(obj,BLEND_ALPHA);
		ObjRender_SetScaleXYZ(obj,0.6,0.6,0);
		Obj_SetRenderPriority(obj,1);
		ObjRender_SetPosition(obj,px,140,0);
	}
			task  RealBomb(px,num){
			let obj=ObjPrim_Create(OBJ_SPRITE_2D);
			let img=GetCurrentScriptDirectory()~"img/front00.png";
			let c = 255;
			ObjPrim_SetTexture(obj,img);
			ObjSprite2D_SetSourceRect(obj,991,36,1022,75);
			ObjSprite2D_SetDestCenter(obj);
			ObjRender_SetBlendType(obj,BLEND_ALPHA);
			ObjRender_SetScaleXYZ(obj,0.6,0.6,0);
			Obj_SetRenderPriority(obj,1);
			ObjRender_SetPosition(obj,px-1,140,0);
			while(true){
			let point = GetPlayerSpell();
			if(point>num){ObjRender_SetAlpha(obj,255);}
			else{ObjRender_SetAlpha(obj,0);}
			yield;
			}
	}
		task TText{
			let obj=ObjPrim_Create(OBJ_SPRITE_2D);
			let img=GetCurrentScriptDirectory()~"img/front01.png";
			ObjPrim_SetTexture(obj,img);
			ObjSprite2D_SetSourceRect(obj,320,0,400,18);
			ObjSprite2D_SetDestCenter(obj);
			ObjRender_SetBlendType(obj,BLEND_ALPHA);
			ObjRender_SetScaleXYZ(obj,1,1,0);
			Obj_SetRenderPriority(obj,1);
			ObjRender_SetPosition(obj,stgx+258,143,0);
			}
}


//----------------------------------------------------
//ボスのライフ表示
//----------------------------------------------------
task TBossLife
{
	let path = GetCurrentScriptDirectory() ~ "img/Default_System.png";
	let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
	ObjPrim_SetTexture(obj, path);
	Obj_SetRenderPriority(obj, 0.7);

	let lastRemStep = -1;
	let lifeRateRender = 0;

	let objScene = ID_INVALID;
	loop
	{
		objScene = GetEnemyBossSceneObjectID();
		ObjSpriteList2D_ClearVertexCount(obj);
		if(objScene != ID_INVALID)
		{
			RenderLife();
		}
		yield;
	}


	function RenderLife()
	{
		//残りステップ
		let countRemStep = ObjEnemyBossScene_GetInfo(objScene, INFO_REMAIN_STEP_COUNT);
		if(lastRemStep != countRemStep)
		{
			//ステップが変化
			lifeRateRender = 0;
		}

		//ライフ表示
		let lifeTotalMax = ObjEnemyBossScene_GetInfo(objScene, INFO_ACTIVE_STEP_TOTAL_MAX_LIFE);
		let lifeTotal = ObjEnemyBossScene_GetInfo(objScene, INFO_ACTIVE_STEP_TOTAL_LIFE);
		let lifeRate = min(lifeTotal / lifeTotalMax, lifeRateRender);
		ObjSpriteList2D_SetSourceRect(obj, 1, 1, 127, 11);
		ObjSpriteList2D_SetDestRect(obj, 72, 8, 72 + 270 * lifeRate, 12);
		ObjSpriteList2D_AddVertex(obj);

		//ライフの区切り表示
		ObjSpriteList2D_SetSourceRect(obj, 132, 1, 137, 11);
		let listLifeDiv = [0] ~ ObjEnemyBossScene_GetInfo(objScene, INFO_ACTIVE_STEP_LIFE_RATE_LIST);
		ascent(iDiv in 0 .. length(listLifeDiv))
		{
			let rate = listLifeDiv[iDiv];
			let x = 72 + 270 * (1-rate);
			ObjSpriteList2D_SetDestRect(obj, x-1, 4, x + 1, 14);
			ObjSpriteList2D_AddVertex(obj);
		}

		//残りステップ表示
		ObjSpriteList2D_SetSourceRect(obj, 1, 1, 127, 11);
		ascent(iStep in 0 .. countRemStep)
		{
			let remStepRate = 58 / countRemStep;
			ObjSpriteList2D_SetDestRect(obj, 4 + iStep * remStepRate + 2, 8,
				4 + (iStep + 1) * remStepRate, 12);
			ObjSpriteList2D_AddVertex(obj);
		}

		lifeRateRender += 0.01;
		lifeRateRender = min(lifeRateRender, 1);
		lastRemStep = countRemStep;
	}
}

//----------------------------------------------------
//タイマー表示
//----------------------------------------------------
task TBossTimer
{
	let pathDigit = GetCurrentScriptDirectory() ~ "img/Default_SystemDigit.png";

	let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
	ObjPrim_SetTexture(obj, pathDigit);
	ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
	Obj_SetRenderPriority(obj, 0.75);
	ObjRender_SetY(obj, 0);
	let count = 2;

	let objScene = ID_INVALID;
	loop
	{
		objScene = GetEnemyBossSceneObjectID();
		ObjSpriteList2D_ClearVertexCount(obj);
		if(objScene != ID_INVALID)
		{
			RenderTimer();
		}
		yield;
	}

	function RenderTimer()
	{
		let timer = ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER);
		timer = min(timer, 99);
		let listNum = DigitToArray(timer, count);

		ObjSpriteList2D_ClearVertexCount(obj);
		ascent(iObj in 0 .. count)
		{
			let num = listNum[iObj];
			ObjRender_SetX(obj, 352 + iObj * 14);
			ObjSpriteList2D_SetSourceRect(obj, num * 36, 0, (num + 1) * 36, 32);
			ObjSpriteList2D_SetDestRect(obj, 0, 0, 16, 24);
			ObjSpriteList2D_AddVertex(obj);
		}
	}

}

//----------------------------------------------------
//スペルカード取得表示
//----------------------------------------------------
task TGainSpell(score)
{
	let objText = ObjText_Create();
	ObjText_SetText(objText, "Spell Card Bonus!");
	ObjText_SetFontSize(objText, 32);
	ObjText_SetFontBold(objText, true);
	ObjText_SetFontColorTop(objText, 255, 255, 255);
	ObjText_SetFontColorBottom(objText, 128, 128, 255);
	ObjText_SetFontBorderType(objText, BORDER_FULL);
	ObjText_SetFontBorderColor(objText,255, 255, 255);
	ObjText_SetFontBorderWidth(objText, 1);
	Obj_SetRenderPriority(objText, 0.6);
	ObjRender_SetX(objText, 32);
	ObjRender_SetY(objText, 98);

	let strScore = "+" ~ IntToString(score);
	let objScore = ObjText_Create();
	ObjText_SetText(objScore, strScore);
	ObjText_SetFontSize(objScore, 32);
	ObjText_SetFontBold(objScore, true);
	ObjText_SetFontColorTop(objScore, 255, 255, 255);
	ObjText_SetFontColorBottom(objScore, 255, 128, 128);
	ObjText_SetFontBorderType(objScore, BORDER_FULL);
	ObjText_SetFontBorderColor(objScore,255, 255, 255);
	ObjText_SetFontBorderWidth(objScore, 1);
	Obj_SetRenderPriority(objScore, 0.6);
	ObjRender_SetX(objScore, 180);
	ObjRender_SetY(objScore, 140);

	loop(120)
	{
		yield;
	}
	Obj_Delete(objText);
	Obj_Delete(objScore);
}

//----------------------------------------------------
//FPS表示
//----------------------------------------------------
task TCurrentFps()
{
	let objText = ObjText_Create();
	ObjText_SetFontSize(objText, 14);
	ObjText_SetFontBold(objText, true);
	ObjText_SetFontColorTop(objText, 160, 160, 255);
	ObjText_SetFontColorBottom(objText, 64, 64, 255);
	ObjText_SetFontBorderType(objText, BORDER_FULL);
	ObjText_SetFontBorderColor(objText,255, 255, 255);
	ObjText_SetFontBorderWidth(objText, 2);
	ObjText_SetHorizontalAlignment(objText, ALIGNMENT_RIGHT);
	ObjText_SetMaxWidth(objText, GetScreenWidth() - 8);
	Obj_SetRenderPriority(objText, 1.0);
	ObjRender_SetX(objText, 0);
	ObjRender_SetY(objText, GetScreenHeight() - 20);

	loop
	{
		let fps = GetCurrentFps();
		let text = vtos("1.2f", fps) ~ "fps";
		ObjText_SetText(objText, text);
		yield;
	}
}

task TReplayFps()
{
	if(!IsReplay()){return;}

	let objText = ObjText_Create();
	ObjText_SetFontSize(objText, 12);
	ObjText_SetFontBold(objText, true);
	ObjText_SetFontColorTop(objText, 128, 128, 255);
	ObjText_SetFontColorBottom(objText, 64, 64, 255);
	ObjText_SetFontBorderType(objText, BORDER_FULL);
	ObjText_SetFontBorderColor(objText,255, 255, 255);
	ObjText_SetFontBorderWidth(objText, 1);
	Obj_SetRenderPriority(objText, 1.0);

	let px = GetStgFrameLeft() + GetStgFrameWidth() - 18;
	let py = GetStgFrameTop() + GetScreenHeight() - 14;
	ObjRender_SetX(objText, px);
	ObjRender_SetY(objText, py);

	loop
	{
		let fps = GetReplayFps();
		let text = vtos("02d", fps);
		ObjText_SetText(objText, text);
		yield;
	}
}

//----------------------------------------------------
//ユーティリティ
//----------------------------------------------------
function DigitToArray(let digit,let count)
{
	let res = [];
	digit = truncate(digit);

	loop
	{
		let tnum = truncate(digit % 10);
		digit /= 10;
		res = [tnum] ~ res;
		if(truncate(digit) == 0){break;}
	}

	loop(max(0, count - length(res)))
	{
		res = [0] ~ res;
	}

	return res;
}

task PlaySound(str,v,w){
	let s = ObjSound_Create;
	if(str == "select"){ObjSound_Load(s,GCSD~"sound/select.wav");}
	if(str == "ok"){ObjSound_Load(s,GCSD~"sound/ok.wav");}
	loop(w){yield;}
	ObjSound_SetSoundDivision(s,SOUND_SE);
	ObjSound_SetVolumeRate(s,v);
	ObjSound_Play(s);
}

function ReturnColor(type){
	if(type=="RED"){return [255,0,0];}
	if(type=="ORANGE"){return [255,128,0];}
	if(type=="YELLOW"){return [255,255,0];}
	if(type=="GREEN"){return [0,255,0];}
	if(type=="BLUE"){return [0,0,255];}
	if(type=="PURPLE"){return [255,0,255];}
	if(type=="WHITE"){return [255,255,255];}
	}

function wait(t){
	loop(t){yield;}
	}
