// ----------------------------------
// RSDK Project: Sonic 1/Sonic 2
// Script Description: Menu DPad Object
// Script Author: Christan Whitehead/Simon Thomley
// Unpacked by Rubberduckycooly's script unpacker
// ----------------------------------

//-------Aliases-------//
private alias 5 : TYPE_MENUDPAD


// Static Values

// Tables

event ObjectMain
	if MenuControl_value2 == 0
		temp0 = screen.xcenter
		temp0 -= 56
		CheckTouchRect(0, 96, temp0, screen.ysize)
		if checkResult > -1
			arrayPos0 = checkResult
			temp0 = touchscreen[arrayPos0].xpos
			temp0 -= 64
			temp1 = touchscreen[arrayPos0].ypos
			temp1 -= 202
			ATan2(temp2, temp0, temp1)
			temp2 += 32
			temp2 &= 255
			temp2 >>= 6
			switch temp2
			case 0
				inputDown.right = 1
				if object.value1 == 0
					inputPress.right |= inputDown.right
				end if
				object.value1 = inputDown.right
				break
			case 1
				inputDown.down = 1
				break
			case 2
				inputDown.left = 1
				if object.value1 == 0
					inputPress.left |= inputDown.left
				end if
				object.value1 = inputDown.left
				break
			case 3
				inputDown.up = 1
				break
			end switch
		else
			object.value1 = 0
		end if
	end if
end event


event ObjectDraw
	if MenuControl_value2 == 0
		if inputDown.up == 1
			DrawSpriteScreenXY(1, 64, 202)
		else
			DrawSpriteScreenXY(0, 64, 202)
		end if
		if inputDown.down == 1
			DrawSpriteScreenXY(3, 64, 202)
		else
			DrawSpriteScreenXY(2, 64, 202)
		end if
		if inputDown.left == 1
			DrawSpriteScreenXY(5, 64, 202)
		else
			DrawSpriteScreenXY(4, 64, 202)
		end if
		if inputDown.right == 1
			DrawSpriteScreenXY(7, 64, 202)
		else
			DrawSpriteScreenXY(6, 64, 202)
		end if
	end if
end event


event ObjectStartup
	LoadSpriteSheet("LevelSelect/Icons.gif")
	foreach (TypeName[Menu DPad], arrayPos0, ALL_ENTITIES)
		switch engine.deviceType
		case 0
			object[arrayPos0].type = TypeName[Blank Object]
			break
		case 1
			object[arrayPos0].priority = PRIORITY_ACTIVE
			break
		end switch
	next
	SpriteFrame(-10, -30, 20, 20, 138, 1)
	SpriteFrame(-10, -30, 20, 20, 138, 43)
	SpriteFrame(-10, 10, 20, 20, 159, 1)
	SpriteFrame(-10, 10, 20, 20, 159, 43)
	SpriteFrame(-30, -10, 20, 20, 138, 22)
	SpriteFrame(-30, -10, 20, 20, 138, 64)
	SpriteFrame(10, -10, 20, 20, 159, 22)
	SpriteFrame(10, -10, 20, 20, 159, 64)
end event

event RSDKDraw
	DrawSprite(0)
end event

event RSDKLoad
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(-16, -16, 32, 32, 1, 143)
end event
