//====================================-
//XNvgpCu REMY
//XeBbN֐
//XNvgɃ^XNЂƂ
//====================================


let REMY_stick = [];
let REMY_stick_push = [];
let REMY_stick_holdcount = 0;
let REMY_stick_pushcount = 0;

//L[`FbN^XN̋N---------------------
//ĂяoȂł
function initialize_REMY_Stick_Manager()
{
	if(REMY_stick_holdcount >= 1 || REMY_stick_pushcount >= 1){ private_REMY_ErrorDouble("initialize_REMY_Stick_Manager"); }

	initialize_REMY_Stick_Hold();
	initialize_REMY_Stick_Push();
}
//---------------------------------------------


//---------------------------------------------
//SHOT,SLOW,USER,SKIP,BOMB̃L[Ԃ擾AREMY_stickɊi[܂
//REMY_GetStickHold()́Cz𒼐ڎQƂĂB
//ڎQƂɂ REMY_stick[_KEY_SHOT] ̂悤ɂOKłB
//܂Ã^XN𕡐グȂŉ
//---------------------------------------------
task initialize_REMY_Stick_Hold()
{
	REMY_stick_holdcount++;
	if(REMY_stick_holdcount > 1){ private_REMY_ErrorDouble("initialize_REMY_Stick_Hold"); }

	ascent(i in 0..5){
		REMY_stick = REMY_stick ~ [false];
	}

	loop{

		REMY_stick[_KEY_SHOT] = ( GetKeyState(VK_SHOT) != KEY_FREE );
		REMY_stick[_KEY_SLOW] = ( GetKeyState(VK_SLOWMOVE) != KEY_FREE );
		REMY_stick[_KEY_USER] = ( GetKeyState(VK_USER) != KEY_FREE );
		REMY_stick[_KEY_SKIP] = ( GetKeyState(VK_SKIP) != KEY_FREE );
		REMY_stick[_KEY_BOMB] = ( GetKeyState(VK_BOMB) != KEY_FREE );
		//REMY_stick[_KEY_FREE] = !( REMY_stick[_KEY_SHOT] || REMY_stick[_KEY_SLOW] );

		yield;
	}

}//end task


//---------------------------------------------
//SHOT,SLOW,USER,SKIP,BOMB̃L[vbV擾AREMY_stick_pushɊi[܂
//iREMY_stickƈāAuԂ擾܂Bj
//REMY_GetStickPush()́Cz𒼐ڎQƂĂB
//ڎQƂɂ REMY_stick_push[_KEY_SHOT] ̂悤ɂOKłB
//܂Ã^XN𕡐グȂŉ
//---------------------------------------------
task initialize_REMY_Stick_Push()
{
	REMY_stick_pushcount++;
	if(REMY_stick_pushcount > 1){ private_REMY_ErrorDouble("initialize_REMY_Stick_Push"); }

	ascent(i in 0..5){
		REMY_stick_push = REMY_stick_push ~ [false];
	}

	loop{

		REMY_stick_push[_KEY_SHOT] = ( GetKeyState(VK_SHOT) == KEY_PUSH );
		REMY_stick_push[_KEY_SLOW] = ( GetKeyState(VK_SLOWMOVE) == KEY_PUSH );
		REMY_stick_push[_KEY_USER] = ( GetKeyState(VK_USER) == KEY_PUSH );
		REMY_stick_push[_KEY_SKIP] = ( GetKeyState(VK_SKIP) == KEY_PUSH );
		REMY_stick_push[_KEY_BOMB] = ( GetKeyState(VK_BOMB) == KEY_PUSH );
		//REMY_stick[_KEY_FREE] = !( REMY_stick[_KEY_SHOT] || REMY_stick[_KEY_SLOW] );

		yield;
	}

}//end task



//---------------------------------------------
//EXeBbN
//EL[̓͏Ԃ擾܂
//֐sƂɉE͂Ă1A-1Aj[g0Ԃ܂
//---------------------------------------------
function REMY_Stick_GetX()
{

	if(GetKeyState(VK_LEFT) != KEY_FREE)		{ return -1; }
	else if(GetKeyState(VK_RIGHT) != KEY_FREE)	{ return 1; }

	return 0;

}//end function

function REMY_Stick_GetPushX()
{

	if(GetKeyState(VK_LEFT) == KEY_PUSH)		{ return -1; }
	else if(GetKeyState(VK_RIGHT) == KEY_PUSH)	{ return 1; }

	return 0;

}//end function

//---------------------------------------------
//㉺XeBbN
//㉺L[̓͏Ԃ擾܂
//֐sƂɉ͂Ă1Aゾ-1Aj[g0Ԃ܂
//---------------------------------------------
function REMY_Stick_GetY()
{

	if(GetKeyState(VK_UP) != KEY_FREE)		{ return -1; }
	else if(GetKeyState(VK_DOWN) != KEY_FREE)	{ return 1; }

	return 0;

}//end function

function REMY_Stick_GetPushY()
{

	if(GetKeyState(VK_UP) == KEY_PUSH)		{ return -1; }
	else if(GetKeyState(VK_DOWN) == KEY_PUSH)	{ return 1; }

	return 0;

}//end function

//---------------------------------------------
//L[Ă󋵂擾܂B
//ɂ́@_KEY_SHOT,_KEY_SLOW, _KEY_USER, _KEY_SKIP, _KEY_BOMB̂ꂩwB
// VK_***ł͂܂̂ŒӂĂB
//---------------------------------------------
function REMY_Stick_Hold(let stickID)
{
	return REMY_stick[stickID];
}



//---------------------------------------------
//L[ꂽuԂ̏󋵂擾܂B
//ɂ́@_KEY_SHOT,_KEY_SLOW, _KEY_USER, _KEY_SKIP, _KEY_BOMB̂ꂩwB
// VK_***ł͂܂̂ŒӂĂB
//---------------------------------------------
function REMY_Stick_Push(let stickID)
{
	return REMY_stick_push[stickID];
}

