// StageXNvgpCN[ht@C
#include_function ".\lib\lib_item.txt"


SetCommonData("ItemXY", []);	// ACeʒuWۑp

let ITEM_ItemLimit = 128;	// PACȅoEȋ͏oȂƂ΂̂ŏOj
let ITEM_ItemNum   = 0;		// oPACeiL^pj

let ITEM_Speed_G = 0.03;	//ACeɂd
let ITEM_Speed_Start = -2;	//ACȅx
let ITEM_Speed_Max = 2;		//ACe̍ő呬x
let ITEM_Speed_Joubu = 8;	//̑x
let ITEM_Speed_Slow = 4;	//ᑬړ̉x
let ITEM_Speed_UFO = 2;		//z̑x

let ITEM_Joubu = 150;		//㕔̃{[_[C
let ITEMLINE_SLOW = 1500;	//ᑬړ̃ACez͈

let ITEM_Speed_Bentler = 1.5;	//xg[̃Xs[h
let ITEM_UFO_Y = 120;		//UFȌoʒuYW


//ACeǗ^XN
task ItemAppeared
{
	let ItemCheck = 0;	//ʃf[^̔z̒
	let XY = [];		//ʃf[^p
	let ItemPerFrame = 5;	//Pt[̍őACe

	loop
	{
		//ʃf[^̒`FbN
		ItemCheck = length(GetCommonDataDefault("ItemXY",[]));
		if (ItemCheck > 0)
		{
			XY = GetCommonDataDefault("ItemXY", []);

			loop (ItemPerFrame)
			{
				if (length(XY) <= 0) { break; }

				//ACeBԂXWAYWAACe̎
				ITEM_MakeItem(XY[0], XY[1], XY[2]);
				//̂ł̗vfz񂩂폜
				loop (3) { XY = erase(XY, 0); }
			}
			
			//ʃf[^
			if (length(XY) == 0)
				{ SetCommonData("ItemXY", []); }
			//z񂪋łȂꍇʃf[^ɕύX̔zn
			else
				{ SetCommonData("ItemXY", XY); }
		}
		yield;
	}
}

//ACe
function ITEM_MakeItem(x, y, type)
{
	if (type == ITEMTYPE_POINT) { ITEM_MakeItem_Point(x, y); }
	else if (type >= ITEMTYPE_BOMB && type <= ITEMTYPE_1UP_MAX) { ITEM_MakeItem_Other(x, y, type); }
	else { ITEM_MakeItem_Bentler(x, y, type); }
}

//PACe̋
task ITEM_MakeItem_Point(x, y)
{
	if (ITEM_ItemNum > ITEM_ItemLimit) { return; }	//oE`FbN
	ITEM_ItemNum++;
	
	//W
	let X1 = 2;
	let Y1 = 21;
	let SIZE_X = 12;
	let SIZE_Y = 12;
	
	//ACȅ   0=  1=
	let ITEM_FLAG = 0;
	
	//GtFNgIuWFNg̐ݒ
	let obj = Obj_Create(OBJ_EFFECT);
	ObjEffect_SetTexture(obj, imgITEM);
	ObjEffect_SetRenderState(obj, ALPHA);
	ObjEffect_SetLayer(obj, 4);
	ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	ObjEffect_CreateVertex(obj, 4);
	ObjEffect_SetVertexXY(obj, 0, -SIZE_X/2, -SIZE_Y/2);
	ObjEffect_SetVertexXY(obj, 1,  SIZE_X/2, -SIZE_Y/2);
	ObjEffect_SetVertexXY(obj, 2,  SIZE_X/2,  SIZE_Y/2);
	ObjEffect_SetVertexXY(obj, 3, -SIZE_X/2,  SIZE_Y/2);
	ObjEffect_SetVertexUV(obj, 0, X1, Y1);
	ObjEffect_SetVertexUV(obj, 1, X1+SIZE_X, Y1);
	ObjEffect_SetVertexUV(obj, 2, X1+SIZE_X, Y1+SIZE_Y);
	ObjEffect_SetVertexUV(obj, 3, X1, Y1+SIZE_Y);
	Obj_SetPosition(obj, x, y);
	
	//̐ݒ
	let ItemSpeed = ITEM_Speed_Start;
	let vx = 0;
	let vy = ItemSpeed;
	
	loop
	{
		let kyori = (Obj_GetX(obj)-GetPlayerX)^2 + (Obj_GetY(obj)-GetPlayerY)^2;	//vC[Ƃ̋
		
		//苗߂Ύ擾
		if (kyori < 300) {
			if (ITEM_FLAG == 0) { ITEM_GetPoint((GetClipMaxY-Obj_GetY(obj))/448); }
			else { ITEM_GetPoint(1); }
			break;
		}
		//ɗ폜
		else if (Obj_GetY(obj) > GetClipMaxY+8) { break; }
		
		//UFOo
		if (GetCommonDataDefault("UFO_STATE", 0) == 2)
		{
			let kyori_ufo = (Obj_GetX(obj)-GetCommonDataDefault("UFO_X", 0))^2 + (Obj_GetY(obj)-GetCommonDataDefault("UFO_Y", 0))^2;
			if (kyori_ufo < 600)	//UFOLb`
			{
				SetCommonData("UFO_ITEM", GetCommonDataDefault("UFO_ITEM", 0)+1);
				break;
			}

			let tmp_angle = atan2(GetCommonDataDefault("UFO_Y", 0)-Obj_GetY(obj), GetCommonDataDefault("UFO_X", 0)-Obj_GetX(obj));
			let tmp_speed = ITEM_Speed_UFO;
			vx = cos(tmp_angle) * tmp_speed;
			vy = sin(tmp_angle) * tmp_speed;
			ItemSpeed = 0;
		}
		//
		else if (ITEM_FLAG == 0)
		{
			//ԕύXF㕔i1t[xĉj
			if (GetPlayerY < ITEM_Joubu || GetCommonDataDefault("CollectItems", 0)) { ITEM_FLAG = 1; }
			//ᑬړ̋z
			else if (kyori < ITEMLINE_SLOW && GetPlayerMoveState() == MOVE_SLOW)
			{
				let tmp_angle = atan2(GetPlayerY-Obj_GetY(obj), GetPlayerX-Obj_GetX(obj));
				let tmp_speed = ITEM_Speed_Slow;
				vx = cos(tmp_angle) * tmp_speed;
				vy = sin(tmp_angle) * tmp_speed;
				ItemSpeed = 0;
			}
			else
			{
				if (ItemSpeed < ITEM_Speed_Max) { ItemSpeed += ITEM_Speed_G; }
				vx = 0; vy = ItemSpeed;
			}
		}
		//㕔
		else
		{
			let tmp_angle = atan2(GetPlayerY-Obj_GetY(obj), GetPlayerX-Obj_GetX(obj));
			let tmp_speed = ITEM_Speed_Joubu;
			vx = cos(tmp_angle) * tmp_speed;
			vy = sin(tmp_angle) * tmp_speed;
			ItemSpeed = 0;
		}

		x += vx; y += vy;
		Obj_SetPosition(obj, x, y);
		yield;
	}
	
	Obj_Delete(obj);
	ITEM_ItemNum--;
}

//PACe擾
function ITEM_GetPoint(rate)
{
	let pt = GetCommonDataDefault("MAX_SCORE", 0);
	pt *= rate;
	pt = trunc(pt / 10) * 10;
	AddScore(pt);

	StopSE(sndSCORE);
	PlaySE(sndSCORE);
}


//1up,{ACe̋
task ITEM_MakeItem_Other(x, y, type)
{
	let X1; let Y1; let SIZE_X; let SIZE_Y;

	//W
	if (type == ITEMTYPE_BOMB)
	{
		X1 =      0; Y1 =     32;
		SIZE_X = 32; SIZE_Y = 32;
	}
	else if (type == ITEMTYPE_1UP)
	{
		X1 =      0; Y1 =      0;
		SIZE_X = 32; SIZE_Y = 32;
	}
	else if (type == ITEMTYPE_BOMB_MAX)
	{
		X1 =     32; Y1 =     32;
		SIZE_X = 32; SIZE_Y = 32;
	}
	else if (type == ITEMTYPE_1UP_MAX)
	{
		X1 =     32; Y1 =      0;
		SIZE_X = 32; SIZE_Y = 32;
	}
	else { return; }
	
	//ACȅ   0=  1=
	let ITEM_FLAG = 0;
	
	//GtFNgIuWFNg̐ݒ
	let obj = Obj_Create(OBJ_EFFECT);
	ObjEffect_SetTexture(obj, imgISTAR);
	ObjEffect_SetRenderState(obj, ALPHA);
	ObjEffect_SetLayer(obj, 4);
	ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	ObjEffect_CreateVertex(obj, 4);
	ObjEffect_SetVertexXY(obj, 0, -SIZE_X/2, -SIZE_Y/2);
	ObjEffect_SetVertexXY(obj, 1,  SIZE_X/2, -SIZE_Y/2);
	ObjEffect_SetVertexXY(obj, 2,  SIZE_X/2,  SIZE_Y/2);
	ObjEffect_SetVertexXY(obj, 3, -SIZE_X/2,  SIZE_Y/2);
	ObjEffect_SetVertexUV(obj, 0, X1, Y1);
	ObjEffect_SetVertexUV(obj, 1, X1+SIZE_X, Y1);
	ObjEffect_SetVertexUV(obj, 2, X1+SIZE_X, Y1+SIZE_Y);
	ObjEffect_SetVertexUV(obj, 3, X1, Y1+SIZE_Y);
	Obj_SetPosition(obj, x, y);
	
	//̐ݒ
	let ItemSpeed = ITEM_Speed_Start;
	let vx = 0;
	let vy = ItemSpeed;
	
	//pop
	StopSE(sndDROPITEM);
	PlaySE(sndDROPITEM);

	loop
	{
		let kyori = (Obj_GetX(obj)-GetPlayerX)^2 + (Obj_GetY(obj)-GetPlayerY)^2;	//vC[Ƃ̋
		
		//苗߂Ύ擾
		if (kyori < 300) {
			ITEM_GetOtherItem(type);
			break;
		}
		//ɗ폜
		else if (Obj_GetY(obj) > GetClipMaxY+24) { break; }
		
		//
		if (ITEM_FLAG == 0)
		{
			//ԕύXF㕔i1t[xĉj
			if (GetPlayerY < ITEM_Joubu || GetCommonDataDefault("CollectItems", 0)) { ITEM_FLAG = 1; }
			//ᑬړ̋z
			else if (kyori < ITEMLINE_SLOW && GetPlayerMoveState() == MOVE_SLOW)
			{
				let tmp_angle = atan2(GetPlayerY-Obj_GetY(obj), GetPlayerX-Obj_GetX(obj));
				let tmp_speed = ITEM_Speed_Slow;
				vx = cos(tmp_angle) * tmp_speed;
				vy = sin(tmp_angle) * tmp_speed;
				ItemSpeed = 0;
			}
			else
			{
				if (ItemSpeed < ITEM_Speed_Max) { ItemSpeed += ITEM_Speed_G; }
				vx = 0; vy = ItemSpeed;
			}
		}
		//㕔
		else
		{
			let tmp_angle = atan2(GetPlayerY-Obj_GetY(obj), GetPlayerX-Obj_GetX(obj));
			let tmp_speed = ITEM_Speed_Joubu;
			vx = cos(tmp_angle) * tmp_speed;
			vy = sin(tmp_angle) * tmp_speed;
		}

		x += vx; y += vy;
		Obj_SetPosition(obj, x, y);
		yield;
	}
	
	Obj_Delete(obj);
}

//1up,{ACe擾
function ITEM_GetOtherItem(type)
{
	if (type == ITEMTYPE_BOMB)
	{
		let BOMB = GetCommonDataDefault("P_BOMB", 0) + 1;
		if (BOMB >= 3)
		{
			if (GetPlayerBomb() < 8)
			{
				BOMB = 0;
				AddBomb(1);
			}
			else { BOMB = 2; }
		}
		SetCommonData("P_BOMB", BOMB);
	}
	else if (type == ITEMTYPE_1UP)
	{
		let PLY = GetCommonDataDefault("P_PLAYER", 0) + 1;
		if (PLY >= 4)
		{
			if (GetPlayerLife() < 8)
			{
				PLY = 0;
				StopSE(snd1UP);
				PlaySE(snd1UP);
				ExtendPlayer(1);
			}
			else { PLY = 3; }
		}
		SetCommonData("P_PLAYER", PLY);
	}
	else if (type == ITEMTYPE_BOMB_MAX)
	{
		if (GetPlayerBomb() < 8)
		{
			AddBomb(1);
		}
	}
	else if (type == ITEMTYPE_1UP_MAX)
	{
		if (GetPlayerLife() < 8)
		{
			ExtendPlayer(1);
		}
		StopSE(snd1UP);
		PlaySE(snd1UP);
	}
}



//xg[ACe̋
task ITEM_MakeItem_Bentler(x, y, type)
{
	let X1; let Y1; let SIZE_X; let SIZE_Y;
	let BentColor = 0;	// 0=ԁA1=A2=
	let BentType = 0;	// 1=Fω
	
	let tenmetu = 0;
	let turn = 0;
	let m_kaiten = 0;
	let ChangeColor = 8;	//Fς
	let TIMER = 180;	//Fω܂ł̎

	//xg[oɉZ
	SetCommonData("BENT_COUNTER", 
			GetCommonDataDefault("BENT_COUNTER", 0) + 1);

	//F`FbN
	if (type == ITEMTYPE_BENT_RED || type == ITEMTYPE_BENT_R_RED)
		{ BentColor = 0; }
	else if (type == ITEMTYPE_BENT_BLUE || type == ITEMTYPE_BENT_R_BLUE)
		{ BentColor = 1; }
	else
		{ BentColor = 2; }
	//C܂xg[`FbN
	if (type == ITEMTYPE_BENT_R_RED || type == ITEMTYPE_BENT_R_GREEN || type == ITEMTYPE_BENT_R_BLUE)
		{ BentType = 1; }
	else
		{ BentType = 0; }
	
	//͈͊Oɔzuꂽꍇ̕␳
	if (x < GetClipMinX+8) { x = GetClipMinX+8; }
	else if (x > GetClipMaxX-8) { x = GetClipMaxX-8; }
	if (y < GetClipMinY+8) { y = GetClipMinY+8; }
	else if (y > GetClipMaxY-64) { y = GetClipMaxY-64; }
	
	//W
	let SIZE_X = 32;
	let SIZE_Y = 21;
	let X1 = trunc((BENTLER_COLOR[BentColor]-1)%4)*64;
	let Y1 = trunc((BENTLER_COLOR[BentColor]-1)/4)*64;
	
	//GtFNgIuWFNg̐ݒ
	let obj = Obj_Create(OBJ_EFFECT);
	ObjEffect_SetTexture(obj, imgBEN);
	ObjEffect_SetRenderState(obj, ALPHA);
	ObjEffect_SetLayer(obj, 4);
	ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	ObjEffect_CreateVertex(obj, 4);
	ObjEffect_SetVertexXY(obj, 0, -SIZE_X/2, -SIZE_Y/2);
	ObjEffect_SetVertexXY(obj, 1,  SIZE_X/2, -SIZE_Y/2);
	ObjEffect_SetVertexXY(obj, 2,  SIZE_X/2,  SIZE_Y/2);
	ObjEffect_SetVertexXY(obj, 3, -SIZE_X/2,  SIZE_Y/2);
	ObjEffect_SetVertexUV(obj, 0, X1, Y1);
	ObjEffect_SetVertexUV(obj, 1, X1+SIZE_X, Y1);
	ObjEffect_SetVertexUV(obj, 2, X1+SIZE_X, Y1+SIZE_Y);
	ObjEffect_SetVertexUV(obj, 3, X1, Y1+SIZE_Y);
	Obj_SetPosition(obj, x, y);
	
	//̐ݒ
	let vx = ITEM_Speed_Bentler * (2^0.5)/2 * ((GetCommonDataDefault("BENT_COUNTER", 0)%2)*2-1);
	let vy = ITEM_Speed_Bentler * (2^0.5)/2;
	
	//}[J[̐ݒ
	let obj_m = Obj_Create(OBJ_EFFECT);
	ObjEffect_SetTexture(obj_m, imgMEJI);
	ObjEffect_SetRenderState(obj_m, ALPHA);
	ObjEffect_SetLayer(obj_m, 4);
	ObjEffect_SetPrimitiveType(obj_m, PRIMITIVE_TRIANGLEFAN);
	ObjEffect_CreateVertex(obj_m, 4);
	ObjEffect_SetVertexXY(obj_m, 0, -16*1.3, -16*1.3);
	ObjEffect_SetVertexXY(obj_m, 1,  16*1.3, -16*1.3);
	ObjEffect_SetVertexXY(obj_m, 2,  16*1.3,  16*1.3);
	ObjEffect_SetVertexXY(obj_m, 3, -16*1.3,  16*1.3);
	ObjEffect_SetVertexUV(obj_m, 0, 0, 0);
	ObjEffect_SetVertexUV(obj_m, 1, 64, 0);
	ObjEffect_SetVertexUV(obj_m, 2, 64, 64);
	ObjEffect_SetVertexUV(obj_m, 3, 0, 64);
	Obj_SetPosition(obj_m, Obj_GetX(obj), Obj_GetY(obj));
	ascent (let i in 0 .. 4)
		{ ObjEffect_SetVertexColor(obj_m, i, 255, [255, 192, 192][BentColor], [192, 192, 255][BentColor], [192, 255, 192][BentColor]); }
	
	let timer = TIMER;
	loop
	{
		let kyori = (Obj_GetX(obj)-GetPlayerX)^2 + (Obj_GetY(obj)-GetPlayerY)^2;	//vC[Ƃ̋
		
		//苗߂Ύ擾
		if (kyori < 300) {
			ITEM_GetBentler(BentColor);
			Obj_Delete(obj);
			break;
		}
		
		//}[J[̏
		if (GetCommonDataDefault("BENT_REACH", -1) == BentColor)
		{
			m_kaiten++;
			ObjEffect_SetScale(obj_m, 1, 1);
			ObjEffect_SetAngle(obj_m, 0, 0, m_kaiten);
			Obj_SetPosition(obj_m, Obj_GetX(obj), Obj_GetY(obj));
		}
		else { ObjEffect_SetScale(obj_m, 0, 0); }
		
		//Fω&^C}[
		if (timer <= 0)
		{
			if (BentType) {
				StopSE(sndBENTLER);
				PlaySE(sndBENTLER);
				BentColor = (BentColor+1)%3;
				
				//}[J[̐FČvZ
				ascent (let i in 0 .. 4)
					{ ObjEffect_SetVertexColor(obj_m, i, 255, [255, 192, 192][BentColor], [192, 192, 255][BentColor], [192, 255, 192][BentColor]); }
			}
			
			timer = TIMER;
			ChangeColor--;
		}
		
		//Aj[V
		if (BentType && kyori >= ITEMLINE_SLOW) { tenmetu += 0.75; }
		else { tenmetu = 0; }
		turn  += 0.125;
		X1 = trunc((BENTLER_COLOR[BentColor]-1)%4)*64 + trunc((turn-1)%2)*32;
		Y1 = trunc((BENTLER_COLOR[BentColor]-1)/4)*64 + trunc(tenmetu%3)*21;
		ObjEffect_SetVertexUV(obj, 0, X1, Y1);
		ObjEffect_SetVertexUV(obj, 1, X1+SIZE_X, Y1);
		ObjEffect_SetVertexUV(obj, 2, X1+SIZE_X, Y1+SIZE_Y);
		ObjEffect_SetVertexUV(obj, 3, X1, Y1+SIZE_Y);

		//ˏ
		if (Obj_GetX(obj) < GetClipMinX+8)
		{
			if (ChangeColor <= 0 || GetCommonDataDefault("IsBOSS", 0)) { break; }
			if (vx < 0) { vx = -vx; }
		} else if (Obj_GetX(obj) > GetClipMaxX-8)
		{
			if (ChangeColor <= 0 || GetCommonDataDefault("IsBOSS", 0)) { break; }
			if (vx > 0) { vx = -vx; }
		}
		if (Obj_GetY(obj) < GetCenterY-64)
		{
			if (ChangeColor <= 0 || GetCommonDataDefault("IsBOSS", 0)) { break; }
			if (vy < 0) { vy = -vy; }
		} else if (Obj_GetY(obj) > GetClipMaxY-64)
		{
			if (ChangeColor <= 0 || GetCommonDataDefault("IsBOSS", 0)) { break; }
			if (vy > 0) { vy = -vy; }
		}

		if (kyori >= ITEMLINE_SLOW) { timer--; }	//߂ÂĂ΃JEg~
		x += vx; y += vy;
		Obj_SetPosition(obj, x, y);
		yield;
	}

	//͈͊OʊO֏o܂
	while (!Obj_BeDeleted(obj))
	{
		let kyori = (Obj_GetX(obj)-GetPlayerX)^2 + (Obj_GetY(obj)-GetPlayerY)^2;	//vC[Ƃ̋
		
		//苗߂Ύ擾
		if (kyori < 300) {
			ITEM_GetBentler(BentColor);
			Obj_Delete(obj);
			break;
		}
		
		//}[J[̏
		if (GetCommonDataDefault("BENT_REACH", -1) == BentColor || kyori < ITEMLINE_SLOW)
		{
			m_kaiten++;
			ObjEffect_SetScale(obj_m, 1, 1);
			ObjEffect_SetAngle(obj_m, 0, 0, m_kaiten);
			Obj_SetPosition(obj_m, Obj_GetX(obj), Obj_GetY(obj));
		}
		else { ObjEffect_SetScale(obj_m, 0, 0); }

		//Fω&^C}[
		if (timer <= 0)
		{
			if (BentType) {
				StopSE(sndBENTLER);
				PlaySE(sndBENTLER);
				BentColor = (BentColor+1)%3;
			}
			
			timer = TIMER;
			ChangeColor--;
		}

		//Aj[V
		if (BentType && kyori >= ITEMLINE_SLOW) { tenmetu += 0.75; }
		else { tenmetu = 0; }
		turn  += 0.125;
		X1 = trunc((BENTLER_COLOR[BentColor]-1)%4)*64 + trunc((turn-1)%2)*32;
		Y1 = trunc((BENTLER_COLOR[BentColor]-1)/4)*64 + trunc(tenmetu%3)*21;
		ObjEffect_SetVertexUV(obj, 0, X1, Y1);
		ObjEffect_SetVertexUV(obj, 1, X1+SIZE_X, Y1);
		ObjEffect_SetVertexUV(obj, 2, X1+SIZE_X, Y1+SIZE_Y);
		ObjEffect_SetVertexUV(obj, 3, X1, Y1+SIZE_Y);

		if (Obj_GetX(obj) < GetClipMinX-32 || Obj_GetX(obj) > GetClipMaxX+32 || Obj_GetY(obj) < GetClipMinY-32 || Obj_GetY(obj) > GetClipMaxY+32) { Obj_Delete(obj); }

		if (kyori >= ITEMLINE_SLOW) { timer--; }
		x += vx; y += vy;
		Obj_SetPosition(obj, x, y);
		yield;
	}
	
	Obj_Delete(obj_m);
}



//xg[̎擾
task ITEM_GetBentler(type)
{
	if (GetCommonDataDefault("UFO_STATE", 0))	//UFOo
	{
		let pt = GetCommonDataDefault("MAX_SCORE", 0);
		pt += 1000;
		if (pt > 99990) { pt = 99990; }
		SetCommonData("MAX_SCORE", pt);
	}
	else
	{
		let b1 = GetCommonDataDefault("BENT1", Bentler_BLANK);
		let b2 = GetCommonDataDefault("BENT2", Bentler_BLANK);
		let reach = -1;
		
		if (b1 == Bentler_BLANK) { b1 = type; }
		else if (b2 == Bentler_BLANK)
		{
			b2 = type;
			if (b1 == b2) { reach = b2; }
			else { reach = 3-b1-b2; }
		}
		else
		{
			let b3 = type;
			if (b1 == b2)
			{
				if (b1 == b3)
				{
					SetCommonData("BENT3", b3);
					CreateEnemyFromFile(GetCurrentScriptDirectory ~ "ufo.txt", GetCenterX, ITEM_UFO_Y , 0, 0, b3);
				}
				else
				{
					b1 = b2;
					b2 = b3;
					if (b1 == b2) { reach = b2; }
					else { reach = 3-b1-b2; }
				}
			}
			else
			{
				if (b1 != b3 && b2 != b3)
				{
					SetCommonData("BENT3", b3);
					CreateEnemyFromFile(GetCurrentScriptDirectory ~ "ufo.txt", GetCenterX, ITEM_UFO_Y , 0, 0, 4);
				}
				else
				{
					b1 = b2;
					b2 = b3;
					if (b1 == b2) { reach = b2; }
					else { reach = 3-b1-b2; }
				}
			}
		}
		SetCommonData("BENT_REACH", reach);
		SetCommonData("BENT1", b1);
		SetCommonData("BENT2", b2);
	}
}
