function PlayerMainLoopSystem
{
	KeyState;
	PlayerState;
	
	
	function KeyState
	{
		let state=[GetKeyState(VK_SHOT),
				   GetKeyState(VK_SLOWMOVE),
				   GetKeyState(VK_LEFT),
				   GetKeyState(VK_RIGHT)];
		ascent(a in 0..length(state))
		{
			player_flg[a]=(state[a]==KEY_PUSH||state[a]==KEY_HOLD);
		}
	}
	
	
	function PlayerState
	{
		if(OnBomb){CollectItems;}
		if(GetPlayerBomb>8){AddBomb(-1);}
		if(GetTimeOfSuperNaturalBorder>=10&&GetPlayerBomb==0&&GetKeyState(VK_BOMB)==KEY_PUSH){ShootDownPlayer;}
		SetIntersectionCircle(GetPlayerX,GetPlayerY,1);
		
		if(GetKeyState(VK_USER)==KEY_PUSH){SwitchEffect;}
	}
	
	yield;
}




function PlayerDrawLoopSystem
{
	SetTexture(tex[TEX_PLAYER]);
	if(player_flg[FLG_LEFT]){SetGraphicRect(0,0,40,48);}
	else if(player_flg[FLG_RIGHT]){SetGraphicRect(104,0,144,48);}
	else{SetGraphicRect(52,0,92,48);}
	DrawGraphic(GetPlayerX,GetPlayerY);
}