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

//-------Aliases-------//
private alias 52 : TYPE_DERTARGET


// Static Values

// Tables
public table DERTarget_table57
	0, 0, 0, 0
end table

public table DERTarget_table58
	0, 0, 0, 0
end table


event ObjectMain
	switch object.state
	case 0
		object.value0 = 160
		object.value2 = 24
		object.value1 = 24
		object.xpos = object[0].xpos
		object.ypos = object[0].ypos
		SetTableValue(object[0].xpos, 0, DERTarget_table57)
		SetTableValue(object[0].ypos, 0, DERTarget_table58)
		SetTableValue(object[0].xpos, 1, DERTarget_table57)
		SetTableValue(object[0].ypos, 1, DERTarget_table58)
		SetTableValue(object[0].xpos, 2, DERTarget_table57)
		SetTableValue(object[0].ypos, 2, DERTarget_table58)
		SetTableValue(object[0].xpos, 3, DERTarget_table57)
		SetTableValue(object[0].ypos, 3, DERTarget_table58)
		object.drawOrder = 5
		object.priority = PRIORITY_ACTIVE
		object.state = 1
		break
	case 1
		object.value0--
		if object.value0 < 0
			object.state++
			object.value0 = 64
			object.value1 = 4
			object.xpos = object[0].xpos
			object.ypos = object[0].ypos
		else
			GetTableValue(object.xpos, 3, DERTarget_table57)
			GetTableValue(object.ypos, 3, DERTarget_table58)
			GetTableValue(temp0, 2, DERTarget_table57)
			GetTableValue(temp1, 2, DERTarget_table58)
			SetTableValue(temp0, 3, DERTarget_table57)
			SetTableValue(temp1, 3, DERTarget_table58)
			GetTableValue(temp0, 1, DERTarget_table57)
			GetTableValue(temp1, 1, DERTarget_table58)
			SetTableValue(temp0, 2, DERTarget_table57)
			SetTableValue(temp1, 2, DERTarget_table58)
			GetTableValue(temp0, 0, DERTarget_table57)
			GetTableValue(temp1, 0, DERTarget_table58)
			SetTableValue(temp0, 1, DERTarget_table57)
			SetTableValue(temp1, 1, DERTarget_table58)
			SetTableValue(object[0].xpos, 0, DERTarget_table57)
			SetTableValue(object[0].ypos, 0, DERTarget_table58)
		end if
		object.value1--
		if object.value1 < 0
			object.value2--
			object.value1 = object.value2
			PlaySfx(SfxName[Beep], 0)
		end if
		break
	case 2
		object.value0--
		if object.value0 < 0
			object[-6].value0 = 1
			object[-6].xpos = object.xpos
			object.state = 0
			object.type = TypeName[Blank Object]
		else
			object.value1--
			if object.value1 < 0
				object.value1 = 4
				PlaySfx(SfxName[Beep], 0)
			end if
		end if
		break
	end switch
	object.animationTimer++
	if object.animationTimer == 4
		object.animationTimer = 0
		object.frame++
		if object.frame >= 5
			object.frame = 0
		end if
		object.value3 ^= 1
	end if
end event


event ObjectDraw
	DrawSprite(object.frame)
	if object.state == 2
		temp0 = object.value3
		temp0 += 5
		DrawSprite(temp0)
	end if
end event


event ObjectStartup
	CheckCurrentStageFolder("Zone12")
	if checkResult == 1
		LoadSpriteSheet("DEZ/Objects.gif")
		SpriteFrame(-53, -53, 106, 106, 249, 149)
		SpriteFrame(-45, -45, 90, 90, 158, 165)
		SpriteFrame(-37, -37, 74, 74, 82, 181)
		SpriteFrame(-29, -29, 58, 58, 23, 197)
		SpriteFrame(-21, -21, 42, 42, 356, 213)
		SpriteFrame(-8, -8, 16, 16, 356, 196)
		SpriteFrame(-8, -8, 16, 16, 373, 196)
	else
		LoadSpriteSheet("MBZ/Objects.gif")
		SpriteFrame(-53, -53, 106, 106, 761, 149)
		SpriteFrame(-45, -45, 90, 90, 670, 165)
		SpriteFrame(-37, -37, 74, 74, 594, 181)
		SpriteFrame(-29, -29, 58, 58, 535, 197)
		SpriteFrame(-21, -21, 42, 42, 868, 213)
		SpriteFrame(-8, -8, 16, 16, 868, 196)
		SpriteFrame(-8, -8, 16, 16, 885, 196)
	end if
end event

event RSDKDraw
	DrawSprite(0)
end event

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