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

//-------Aliases-------//
private alias 56 : nick.numberxoffset

private alias object.value14 : end.highlight

// Static Values

// Tables

event ObjectMain
	switch object.state
	case 0	
		object.value1 = screen.xcenter
		object.value1 -= 264
		object.value2 = screen.xcenter
		object.value2 += 200
		object.value3 = screen.xcenter
		object.value3 -= 464
		object.value4 = screen.xcenter
		object.value4 += 400		
		
		object.value10 = object[0].value0
		object.value9 = 0
		
		switch object.propertyValue
			case 0
				object.value15 = 144
				break
			case 1
				object.value15 = 200
				break
		end switch
		
		stage.state = 3
		
		object.state++
		break
	case 1
		temp0 = screen.xcenter
		temp0 -= 72
		if object.value1 < temp0
			object.value1 += 16
			if object.value1 > temp0
				object.value1 = temp0
			end if
		end if
		if object.value3 < temp0
			object.value3 += 16
			if object.value3 > temp0
				object.value3 = temp0
			end if
		end if
		temp0 += 80
		if object.value2 > temp0
			object.value2 -= 16
			if object.value2 < temp0
				object.value2 = temp0
			end if
		end if
		if object.value4 > temp0
			object.value4 -= 16
			if object.value4 < temp0
				object.value4 = temp0
			end if
		end if
		
		temp0 = inputPress.left
		temp0 |= inputPress.right
		if temp0 == 1
			PlaySfx(SfxName[Score Add], 0)
			end.highlight ^= 1
		end if
		temp0 = inputPress.start
		temp0 |= inputPress.buttonA
		if temp0 == 1
			object.state++
			object.value9 = 0
			PlaySfx(SfxName[Star Post], 0)
		end if
		break
	case 2
		if object.value9 < 288
			object.value9 += 4
			music.volume -= 2
		else
			options.attractMode = 0
			player.lives = 3
			player.continues = 0
			player.score = 0
			player.scoreBonus = 0xC350
			starPostID = 0
			specialStage.listPos = 0
			specialStage.emeralds = 0
			specialStage.nextZone = 0
			if end.highlight == 1
				stage.activeList = PRESENTATION_STAGE
				stage.listPos = 6
			end if
			LoadStage()
		end if
		SetScreenFade(0, 0, 0, object.value9)
		break	
	end switch
end event


event ObjectDraw
	if object.propertyValue == 0
		DrawSpriteScreenXY(0, object.value1, 64)
		DrawSpriteScreenXY(1, object.value2, 64)
		DrawSpriteScreenXY(2, object.value3, 99)
		
		if object.value10 >= 0
			DrawNumbers(3, object.value4, 112, object.value10, 5, 15, 0)
		else
			temp0 = object.value10
			FlipSign(temp0)
			DrawNumbers(3, object.value4, 112, temp0, 5, 15, 0)
			temp1 = object.value4
			temp1 -= 15
			while temp0 >= 10
				temp1 -= 15
				temp0 /= 10
			loop
			DrawSpriteScreenXY(17, temp1, 112)
		end if
	end if
	
	switch end.highlight
		case 0 //to restart
			DrawSpriteScreenXY(15, object.value1, object.value15)
			DrawSpriteScreenXY(14, object.value2, object.value15)
			break
		case 1 //to exit
			DrawSpriteScreenXY(13, object.value1, object.value15)
			DrawSpriteScreenXY(16, object.value2, object.value15)
			break
	end switch
end event


event ObjectStartup
	LoadSpriteSheet("Global/Over.gif")
	SpriteFrame(0, 0, 56, 16, 1, 1) //Time
	SpriteFrame(0, 0, 64, 16, 58, 1) //Over
	SpriteFrame(-8, 0, 68, 16, 1, 18) //Rings
	
	//Numbers
	SpriteFrame(nick.numberxoffset, 0, 14, 16, 70, 18)
	SpriteFrame(nick.numberxoffset, 0, 11, 16, 85, 18)
	SpriteFrame(nick.numberxoffset, 0, 11, 16, 97, 18)
	SpriteFrame(nick.numberxoffset, 0, 11, 16, 109, 18)
	SpriteFrame(nick.numberxoffset, 0, 11, 16, 1, 35)
	SpriteFrame(nick.numberxoffset, 0, 12, 16, 13, 35)
	SpriteFrame(nick.numberxoffset, 0, 12, 16, 26, 35)
	SpriteFrame(nick.numberxoffset, 0, 11, 16, 39, 35)
	SpriteFrame(nick.numberxoffset, 0, 12, 16, 51, 35)
	SpriteFrame(nick.numberxoffset, 0, 12, 16, 64, 35)
	
	//End Menu
	SpriteFrame(0, 0, 57, 11, 1, 52) //13 Restart
	SpriteFrame(24, 0, 30, 11, 59, 52) //14 Exit
	SpriteFrame(0, 0, 57, 14, 1, 64) //15 Restart HL
	SpriteFrame(24, 0, 30, 14, 59, 64) //16 Exit HL
	SpriteFrame(nick.numberxoffset, 0, 12, 16, 77, 35) //17 -
end event

event RSDKDraw
	DrawSprite(0)
end event

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