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

//-------Aliases-------//
private alias 16 : TYPE_SSRESULTS


// Static Values

// Tables

event ObjectMain
	switch object.state
	case 0
		SetupMenu(MENU_1, 0, 3, 0)
		LoadSpriteSheet("LevelSelect/Icons.gif")
		object.value1 = object.spriteSheet
		LoadSpriteSheet("LevelSelect/Text.gif")
		object.value2 = object.spriteSheet
		menu1.selection = -1
		arrayPos0 = vs.match
		arrayPos0 <<= 2
		arrayPos0 += 0x400
		object.value6 = saveRAM[arrayPos0]
		arrayPos0++
		object.value7 = saveRAM[arrayPos0]
		arrayPos0++
		object.value8 = saveRAM[arrayPos0]
		object.value9 = 0
		object.value10 = 0
		temp0 = object.value6
		temp0 &= 15
		temp1 = object.value6
		temp1 >>= 4
		if temp0 == temp1
			object.value3 = 3
		else
			if temp0 > temp1
				object.value3 = 1
				object.value9++
			else
				object.value3 = 2
				object.value10++
			end if
		end if
		temp0 = object.value7
		temp0 &= 15
		temp1 = object.value7
		temp1 >>= 4
		if temp0 == temp1
			object.value4 = 3
		else
			if temp0 > temp1
				object.value4 = 1
				object.value9++
			else
				object.value4 = 2
				object.value10++
			end if
		end if
		object.value13 = vs.tieBreaker
		vs.tieBreaker = 0
		temp0 = object.value8
		temp0 &= 15
		temp1 = object.value8
		temp1 >>= 4
		if temp0 == temp1
			object.value5 = 3
		else
			if temp0 > temp1
				object.value5 = 1
				object.value9++
			else
				object.value5 = 2
				object.value10++
			end if
		end if
		if object.value9 == object.value10
			object.value11 = 18
		else
			if object.value9 > object.value10
				object.value11 = 14
			else
				object.value11 = 16
			end if
		end if
		AddMenuEntry(MENU_1, "@@@@@@@@@SPECIAL@@STAGE", 1)
		AddMenuEntry(MENU_1, "", 1)
		AddMenuEntry(MENU_1, "", 1)
		AddMenuEntry(MENU_1, "", 1)
		AddMenuEntry(MENU_1, "@@@@@@@@@@@@@@@1P@@@@@2P@@@@WINS", 1)
		AddMenuEntry(MENU_1, "", 1)
		AddMenuEntry(MENU_1, "", 1)
		AddMenuEntry(MENU_1, "", 1)
		AddMenuEntry(MENU_1, "STAGE@@* 1 *@@@@@@@:", 1)
		AddMenuEntry(MENU_1, "", 1)
		AddMenuEntry(MENU_1, "STAGE@@* 2 *@@@@@@@:", 1)
		AddMenuEntry(MENU_1, "", 1)
		if object.value13 == 0
			AddMenuEntry(MENU_1, "STAGE@@* 3 *@@@@NO GAME", 1)
		else
			AddMenuEntry(MENU_1, "STAGE@@* 3 *@@@@@@@:", 1)
		end if
		object.state++
		break
	case 1
		CallNativeFunction2(ReceiveEntity, 32, 1)
		ResetObjectEntity(32, TypeName[Blank Object], 0, 0, 0)
		object.state++
		break
	case 2
		if object.value0 < 60
			object.value0++
		else
			CheckTouchRect(0, 0, screen.xsize, screen.ysize)
			if inputPress.start == 1
				checkResult = 0
			end if
			if inputPress.buttonA == 1
				checkResult = 0
			end if
			if inputPress.buttonB == 1
				checkResult = 0
			end if
			if inputPress.buttonC == 1
				checkResult = 0
			end if
			if checkResult > -1
				object.value0 = 0
				vs.match++
				object.state = 3
				CallNativeFunction2(SendValue, 1, 1)
				object.value12 = 0
			end if
		end if
		break
	case 3
		if object.value0 < 384
			object.value0 += 16
			if vs.match < vs.gameLength
				music.volume -= 10
			end if
			SetScreenFade(0, 0, 0, object.value0)
		else
			if vs.match >= vs.gameLength
				ResetObjectEntity(1, TypeName[Game Results], 0, 0, 0)
				object[1].priority = PRIORITY_ACTIVE
				object[0].state = 1
				object[0].value0 = 384
			else
				object.state = 4
			end if
			SetScreenFade(0, 0, 0, 255)
		end if
		break
	case 4
		if ReceiveValue == -1
			object.value12 = 1
		else
			CallNativeFunction2(ReceiveValue, object.value12, 1)
		end if
		if object.value12 == 1
			SetMusicTrack("Options.ogg", 0, 1)
			PlayMusic(0)
			ResetObjectEntity(1, TypeName[2P VS Menu 3], 0, 0, 0)
			object[1].priority = PRIORITY_ACTIVE
			object[0].state = 1
			object[0].value0 = 384
			SetScreenFade(0, 0, 0, 255)
		end if
		break
	end switch
	object.animationTimer++
	object.animationTimer &= 15
end event


event ObjectDraw
	object.spriteSheet = object.value1
	if object.state < 4
		DrawSpriteScreenXY(0, screen.xcenter, 17)
		temp0 = screen.xcenter
		temp1 = temp0
		temp1 += 48
		temp2 = object.value6
		temp2 &= 15
		temp3 = object.value6
		temp3 >>= 4
		DrawNumbers(4, temp0, 129, temp2, 2, 8, 0)
		DrawNumbers(4, temp1, 129, temp3, 2, 8, 0)
		temp2 = object.value7
		temp2 &= 15
		temp3 = object.value7
		temp3 >>= 4
		DrawNumbers(4, temp0, 145, temp2, 2, 8, 0)
		DrawNumbers(4, temp1, 145, temp3, 2, 8, 0)
		if object.value13 == 1
			temp2 = object.value8
			temp2 &= 15
			temp3 = object.value8
			temp3 >>= 4
			DrawNumbers(4, temp0, 161, temp2, 2, 8, 0)
			DrawNumbers(4, temp1, 161, temp3, 2, 8, 0)
		end if
		temp0 = screen.xcenter
		temp0 += 112
		DrawSpriteScreenXY(object.value3, temp0, 129)
		DrawSpriteScreenXY(object.value4, temp0, 145)
		if object.value13 == 1
			DrawSpriteScreenXY(object.value5, temp0, 161)
		end if
		temp0 = object.animationTimer
		temp0 >>= 3
		temp0 += object.value11
		DrawSpriteScreenXY(temp0, screen.xcenter, 196)
		object.spriteSheet = object.value2
		temp0 = screen.xcenter
		temp0 -= 128
		DrawMenu(MENU_1, temp0, 64)
	else
		DrawRect(0, 0, screen.xsize, screen.ysize, 0, 0, 0, 255)
		DrawSpriteScreenXY(20, screen.xsize, screen.ysize)
	end if
end event


event ObjectStartup
	LoadSpriteSheet("LevelSelect/Icons.gif")
	LoadSpriteSheet("LevelSelect/Text.gif")
	SpriteFrame(-48, 0, 96, 14, 1, 136)
	SpriteFrame(-8, 0, 16, 7, 98, 136)
	SpriteFrame(-8, 0, 16, 7, 115, 136)
	SpriteFrame(-16, 0, 32, 7, 132, 136)
	SpriteFrame(0, 0, 8, 7, 175, 140)
	SpriteFrame(0, 0, 8, 7, 183, 140)
	SpriteFrame(0, 0, 8, 7, 191, 140)
	SpriteFrame(0, 0, 8, 7, 199, 140)
	SpriteFrame(0, 0, 8, 7, 207, 140)
	SpriteFrame(0, 0, 8, 7, 215, 140)
	SpriteFrame(0, 0, 8, 7, 223, 140)
	SpriteFrame(0, 0, 8, 7, 231, 140)
	SpriteFrame(0, 0, 8, 7, 239, 140)
	SpriteFrame(0, 0, 8, 7, 247, 140)
	SpriteFrame(-47, 0, 91, 12, 1, 110)
	SpriteFrame(-47, 0, 91, 12, 1, 123)
	SpriteFrame(-47, 0, 91, 12, 93, 110)
	SpriteFrame(-47, 0, 91, 12, 93, 123)
	SpriteFrame(-22, 0, 44, 12, 1, 385)
	SpriteFrame(-22, 0, 44, 12, 1, 398)
	if vs.playerID == 0
		SpriteFrame(-160, -16, 136, 7, 103, 422)
	else
		SpriteFrame(-160, -16, 136, 7, 103, 414)
	end if
	foreach (TypeName[SS Results], arrayPos0, ALL_ENTITIES)
		object[arrayPos0].priority = PRIORITY_ACTIVE
	next
end event

event RSDKDraw
	DrawSprite(0)
end event

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