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

//-------Aliases-------//
private alias 40 : TYPE_CONTINUESETUP


// Static Values

// Tables

event ObjectMain
	switch object.state
	case 0
		stage.pauseEnabled = 0
		object.value0 = 320
		SetScreenFade(0, 0, 0, object.value0)
		object.state++
		break
	case 1
		if object.value0 > 0
			object.value0 -= 8
		else
			PlayMusic(0)
			object.state++
			object[-1].state++
		end if
		SetScreenFade(0, 0, 0, object.value0)
		break
	case 2
		temp0 = inputPress.start
		temp0 |= inputPress.buttonA
		temp0 |= inputPress.buttonB
		temp0 |= inputPress.buttonC
		if temp0 == 1
			object[0].animation = ANI_CONTINUE_UP
			object[0].speed = 0
			PlaySfx(SfxName[Charge], 0)
			object.state++
			object[-1].state++
		end if
		break
	case 3
		if music.volume > 0
			music.volume--
		end if
		object[0].speed += 0x2000
		if object[0].speed == 0x90000
			object[0].xvel = 0x100000
			if object[1].type == TypeName[Blank Object]
				object.state++
			end if
		end if
		if object[1].type != TypeName[Blank Object]
			if object[0].speed == 0x20000
				object[1].animation = ANI_CONTINUE_UP
				object[1].speed = 0
				PlaySfx(SfxName[Charge], 0)
			end if
			if object[0].speed > 0x20000
				object[1].speed += 0x2000
				if object[1].speed == 0x90000
					object[1].xvel = 0x100000
					object.state++
				end if
			end if
		end if
		break
	case 4
		if music.volume > 0
			music.volume--
		end if
		temp0 = screen.xsize
		temp0 += 32
		if object[1].type == TypeName[Blank Object]
			temp1 = object[0].xpos
		else
			temp1 = object[1].xpos
		end if
		temp1 >>= 16
		if temp1 >= temp0
			object.state++
		end if
		break
	case 5
		if music.volume > 0
			music.volume--
		end if
		object.value0 += 4
		SetScreenFade(0, 0, 0, object.value0)
		if object.value0 == 384
			player.continues--
			player.lives = 3
			fadeColor = 0
			object.value0 = 0
			starPostID = 0
			object.direction = FLIP_NONE
			stage.activeList = recStageList
			stage.listPos = recStage
			LoadStage()
		end if
		break
	case 6
		object.value0 += 4
		SetScreenFade(0, 0, 0, object.value0)
		if object.value0 == 384
			fadeColor = 0
			object.value0 = 0
			starPostID = 0
			object.direction = FLIP_NONE
			stage.activeList = PRESENTATION_STAGE
			stage.listPos = 6
			LoadStage()
		end if
		break
	end switch
end event


event ObjectDraw
	ClearScreen(1)
end event


event ObjectStartup
	foreach (TypeName[Continue Setup], arrayPos0, ALL_ENTITIES)
		object[arrayPos0].drawOrder = 0
	next
	object[0].xpos = screen.xcenter
	object[0].xpos <<= 16
	object[0].animation = ANI_FANROTATE
	object[0].state = PlayerObject_HandleContRun
	switch stage.playerListPos
	case 0
	case 3
		object[0].ypos = 0xAC0000
		break
	case 1
		object[0].ypos = 0xAC0000
		break
	case 2
		object[0].ypos = 0xB00000
		break
	end switch
	object[0].animation = ANI_CONTINUE
	if object[1].type != TypeName[Blank Object]
		object[1].xpos = screen.xcenter
		object[1].xpos <<= 16
		object[1].animation = ANI_FANROTATE
		object[1].state = PlayerObject_HandleContRun
		object[0].xpos -= 0x100000
		object[1].xpos += 0x100000
		object[1].ypos = object[0].ypos
		object[1].ypos += 0x40000
		object[1].animation = ANI_BORED
	end if
	stage.newXBoundary2 = screen.xsize
	stage.newYBoundary2 = screen.ysize
	SetMusicTrack("Continue.ogg", 0, 0)
	stage.pauseEnabled = 0
	if player.continues == 0
		player.continues = 3
	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
