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

//-------Aliases-------//
private alias 12 : TYPE_ZONEBUTTON


// Static Values

// Tables

event ObjectMain
	switch object.state
	case 0
		object.value3 = object.propertyValue
		object.value3 += 7
		object.value7 = object.propertyValue
		object.value7 += 20
		object.inkEffect = INK_ALPHA
		object.value1 = 64
		object.value8 = object.entityPos
		object.value8 -= 9
		if object[1].type == TypeName[2P VS Menu 3]
			if object[1].state == 3
				object.alpha = 256
			else
				object.alpha = 128
			end if
			GetBit(object.value2, vs.stageMask, object.propertyValue)
		else
			object.alpha = 256
			if object.propertyValue == 13
				if saveRAM[46] == 0
					object.value2 = 1
				end if
			end if
		end if
		object.state = 1
		break
	case 1
		if options.physicalControls == 0
			CheckTouchRect(0, 0, screen.xsize, screen.ysize)
			if checkResult > -1
				temp0 = screen.xcenter
				temp0 += object.xpos
				temp0 -= 32
				temp1 = temp0
				temp1 += 64
				temp2 = object.ypos
				temp2 += 148
				temp2 -= 28
				temp3 = temp2
				temp3 += 56
				CheckTouchRect(temp0, temp2, temp1, temp3)
				if checkResult > -1
					object[1].value3 = object.value8
				end if
			end if
		end if
		break
	case 2
		break
	end switch
end event


event ObjectDraw
	if object[1].value3 == object.value8
		temp0 = object[1].value4
		temp0 >>= 1
		temp0 &= 1
		if object[1].state < 4
			temp0 = 1
		end if
	else
		temp0 = 0
	end if
	if temp0 == 1
		object.value4 = 3
		object.value5 = 4
		object.value6 = 5
		temp3 = 200
	else
		object.value4 = 0
		object.value5 = 1
		object.value6 = 2
		temp3 = 151
	end if
	temp0 = object.value1
	temp0 >>= 1
	temp0 -= 4
	FlipSign(temp0)
	temp0 += object.xpos
	temp0 += screen.xcenter
	temp1 = object.ypos
	temp1 += 148
	DrawSpriteScreenFX(object.value4, FX_INK, temp0, temp1)
	temp2 = object.value1
	temp2 -= 8
	EditFrame(object.value5, 0, -24, temp2, 48, 5, temp3)
	DrawSpriteScreenFX(object.value5, FX_INK, temp0, temp1)
	temp0 += 7
	if object.value2 == 0
		DrawSpriteScreenFX(6, FX_INK, temp0, temp1)
		DrawSpriteScreenFX(object.value3, FX_INK, temp0, temp1)
	else
		DrawSpriteScreenFX(7, FX_INK, temp0, temp1)
	end if
	temp0--
	temp0 += object.value1
	temp0 -= 14
	DrawSpriteScreenFX(object.value6, FX_INK, temp0, temp1)
	if object.value1 == 224
		temp0 -= object.value1
		temp0 += 60
		DrawSpriteScreenFX(object.value7, FX_INK, temp0, temp1)
	end if
end event


event ObjectStartup
	LoadSpriteSheet("LevelSelect/Icons.gif")
	SpriteFrame(-4, -24, 4, 48, 1, 151)
	SpriteFrame(0, -24, 40, 48, 5, 151)
	SpriteFrame(0, -24, 4, 48, 221, 151)
	SpriteFrame(-4, -24, 4, 48, 1, 200)
	SpriteFrame(0, -24, 40, 48, 5, 200)
	SpriteFrame(0, -24, 4, 48, 221, 200)
	SpriteFrame(0, -17, 42, 34, 164, 314)
	SpriteFrame(0, -17, 42, 34, 54, 50)
	SpriteFrame(4, -13, 32, 24, 1, 85)
	SpriteFrame(4, -13, 32, 24, 34, 85)
	SpriteFrame(4, -13, 32, 24, 67, 85)
	SpriteFrame(4, -13, 32, 24, 100, 85)
	SpriteFrame(4, -13, 32, 24, 133, 85)
	SpriteFrame(4, -13, 32, 24, 166, 85)
	SpriteFrame(4, -13, 32, 24, 180, 1)
	SpriteFrame(4, -13, 32, 24, 213, 51)
	SpriteFrame(4, -13, 32, 24, 213, 1)
	SpriteFrame(4, -13, 32, 24, 180, 26)
	SpriteFrame(4, -13, 32, 24, 213, 26)
	SpriteFrame(4, -13, 32, 24, 180, 51)
	SpriteFrame(4, -13, 32, 24, 199, 85)
	SpriteFrame(4, -3, 136, 7, 103, 350)
	SpriteFrame(4, -3, 152, 7, 103, 358)
	SpriteFrame(4, -3, 136, 7, 103, 366)
	SpriteFrame(4, -3, 136, 7, 103, 374)
	SpriteFrame(4, -3, 104, 7, 103, 382)
	SpriteFrame(4, -3, 128, 7, 103, 390)
	SpriteFrame(4, -3, 112, 7, 103, 398)
	SpriteFrame(4, -3, 104, 7, 103, 406)
	SpriteFrame(4, -3, 120, 7, 103, 470)
	SpriteFrame(4, -3, 112, 7, 103, 478)
	SpriteFrame(4, -3, 144, 7, 103, 486)
	SpriteFrame(4, -3, 112, 7, 103, 494)
	SpriteFrame(4, -3, 144, 7, 103, 502)
end event

event RSDKDraw
	DrawSprite(0)
end event

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