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

//-------Aliases-------//
private alias 4 : TYPE_DEATHEGGFALL


// Tables

event ObjectMain
	switch object.propertyValue
	case 0
		break
	case 1
		object.xpos += 0x2000
		object.ypos += 0x2000
		object.value0++
		if object.value0 >= 6
			object.value0 = 0
			Rand(temp0, 36)
			temp0 -= 18
			temp0 <<= 16
			temp0 += object.xpos
			Rand(temp1, 36)
			temp1 -= 18
			temp1 <<= 16
			temp1 += object.ypos
			CreateTempObject(TypeName[Death Egg Fall], 21, temp0, temp1)
			object[tempObjectPos].drawOrder = 1
		end if
		object.value1++
		if object.value1 >= 24
			object.value1 = 0
			Rand(temp0, 36)
			temp0 -= 18
			temp0 <<= 16
			temp0 += object.xpos
			Rand(temp1, 36)
			temp1 -= 18
			temp1 <<= 16
			temp1 += object.ypos
			CreateTempObject(TypeName[Death Egg Fall], 5, temp0, temp1)
			object[tempObjectPos].drawOrder = 1
			Rand(temp0, 4)
			if temp0 == 2
				object[tempObjectPos].propertyValue = 9
			end if
		end if
		object.value2++
		if object.value2 >= 32
			object.value2 = 0
			Rand(temp0, 36)
			temp0 -= 18
			temp0 <<= 16
			temp0 += object.xpos
			Rand(temp1, 36)
			temp1 -= 18
			temp1 <<= 16
			temp1 += object.ypos
			CreateTempObject(TypeName[Death Egg Fall], 27, temp0, temp1)
			object[tempObjectPos].drawOrder = 1
		end if
		object.value4++
		if object.value4 >= 28
			object.value4 = 0
			Rand(temp0, 36)
			temp0 -= 18
			temp0 <<= 16
			temp0 += object.xpos
			temp1 = object.ypos
			temp1 -= 0x120000
			CreateTempObject(TypeName[Death Egg Fall], 13, temp0, temp1)
			object[tempObjectPos].drawOrder = 1
			Rand(temp0, 4)
			if temp0 == 2
				object[tempObjectPos].propertyValue = 17
			end if
		end if
		break
	case 2
		object.xpos -= 0x2000
		object.ypos -= 0x2000
		break
	case 3
		object.xpos -= 0x4000
		object.ypos -= 0x4000
		break
	case 4
		object.xpos -= 0x1000
		object.ypos -= 0x1000
		break
	case 5
	case 6
	case 7
	case 8
	case 9
	case 10
	case 11
	case 12
	case 13
	case 14
	case 15
	case 16
	case 17
	case 18
	case 19
	case 20
		object.animationTimer++
		if object.animationTimer >= 4
			object.animationTimer = 0
			object.propertyValue++
			object.value0++
			if object.value0 >= 4
				object.type = TypeName[Blank Object]
			end if
		end if
		object.xpos -= 0x6000
		object.ypos -= 0x6000
		break
	case 21
	case 22
	case 23
	case 24
	case 25
	case 26
		object.animationTimer ^= 1
		if object.animationTimer == 0
			object.propertyValue++
			object.value0++
			if object.value0 >= 6
				object.type = TypeName[Blank Object]
			end if
		end if
		object.xpos += 0x1000
		object.ypos += 0x1000
		break
	case 27
		object.animationTimer++
		object.animationTimer &= 15
		object.direction = object.animationTimer
		object.direction >>= FLIP_Y
		object.xpos -= 0x6000
		object.ypos -= 0x6000
		break
	end switch
end event


event ObjectDraw
	DrawSprite(object.propertyValue)
end event


event ObjectStartup
	LoadSpriteSheet("Ending/Fall.gif")
	SpriteFrame(-48, -48, 96, 96, 1, 1)
	SpriteFrame(-21, -21, 42, 42, 163, 1)
	SpriteFrame(-32, -32, 64, 64, 98, 1)
	SpriteFrame(-24, -4, 48, 8, 206, 1)
	SpriteFrame(-8, -4, 16, 8, 206, 10)
	SpriteFrame(-8, -7, 16, 13, 98, 66)
	SpriteFrame(-8, -7, 15, 14, 115, 66)
	SpriteFrame(-8, -7, 15, 14, 131, 66)
	SpriteFrame(-6, -6, 12, 12, 147, 66)
	SpriteFrame(-8, -7, 16, 13, 98, 81)
	SpriteFrame(-8, -7, 15, 14, 115, 81)
	SpriteFrame(-8, -7, 15, 14, 131, 81)
	SpriteFrame(-6, -6, 12, 12, 131, 96)
	SpriteFrame(-4, -4, 8, 7, 163, 44)
	SpriteFrame(-4, -4, 8, 7, 172, 44)
	SpriteFrame(-4, -4, 8, 7, 181, 44)
	SpriteFrame(-3, -3, 6, 6, 190, 44)
	SpriteFrame(-4, -4, 8, 7, 163, 52)
	SpriteFrame(-4, -4, 8, 7, 172, 52)
	SpriteFrame(-4, -4, 8, 7, 181, 52)
	SpriteFrame(-3, -3, 6, 6, 190, 52)
	SpriteFrame(0, 0, 1, 1, 163, 60)
	SpriteFrame(0, -1, 1, 2, 165, 60)
	SpriteFrame(-1, -1, 2, 2, 167, 60)
	SpriteFrame(-2, -2, 4, 4, 170, 60)
	SpriteFrame(-2, -2, 4, 4, 175, 60)
	SpriteFrame(-2, -2, 4, 4, 180, 60)
	SpriteFrame(-3, -3, 6, 6, 223, 10)
end event

event RSDKDraw
	DrawSprite(0)
end event

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