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

//-------Aliases-------//
private alias 7 : TYPE_DEATHEVENT


// Static Values

// Tables

event ObjectMain
	switch object.state
	case 0
	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
		temp0 += 80
		if object.value2 > temp0
			object.value2 -= 16
			if object.value2 < temp0
				object.value2 = temp0
			end if
		end if
		if object.value3 < 288
			object.value3 += 4
		else
			if object.state == 0
				recStageList = stage.activeList
				recStage = stage.listPos
				stage.activeList = PRESENTATION_STAGE
				if options.vsMode == 0
					if player.continues == 0
						stage.listPos = 6
						LoadStage()
					else
						stage.listPos = 4
					end if
				else
					stage.listPos = 3
					if vs.playerID == 0
						if object.entityPos == 0
							player.score = 0
							player.lives = 3
							vs.time1P = 0xEA60
							vs.rings1P = 0
							vs.totalRings1P = 0
							vs.items1P = 0
						else
							player.score2 = 0
							player.lives2 = 3
							vs.time2P = 0xEA60
							vs.rings2P = 0
							vs.totalRings2P = 0
							vs.items2P = 0
						end if
					else
						if object.entityPos == 1
							player.score2 = 0
							player.lives2 = 3
							vs.time1P = 0xEA60
							vs.rings1P = 0
							vs.totalRings1P = 0
							vs.items1P = 0
						else
							player.score = 0
							player.lives = 3
							vs.time2P = 0xEA60
							vs.rings2P = 0
							vs.totalRings2P = 0
							vs.items2P = 0
						end if
					end if
				end if
				starPostID = 0
				player.score = 0
				if options.gameMode == 1
					arrayPos1 = options.saveSlot
					arrayPos1 <<= 3
					arrayPos1 += 1000
					arrayPos1++
					saveRAM[arrayPos1] = 3
					arrayPos1++
					saveRAM[arrayPos1] = 0
					arrayPos1++
					saveRAM[arrayPos1] = 0xC350
					WriteSaveRAM()
				end if
				if options.gameMode == 5
					saveRAM[801] += object[0].value0
					WriteSaveRAM()
				end if
			else
				if options.vsMode == 1
					if vs.playerID == 0
						vs.rings1P = object[0].value0
						vs.rings2P = object[1].value0
					else
						vs.rings1P = object[1].value0
						vs.rings2P = object[0].value0
					end if
					starPostID = 0
					stage.activeList = PRESENTATION_STAGE
					stage.listPos = 3
				end if
				if options.gameMode == 1
					arrayPos1 = options.saveSlot
					arrayPos1 <<= 3
					arrayPos1 += 1000
					arrayPos1++
					saveRAM[arrayPos1] = player.lives
					WriteSaveRAM()
				end if
				if options.gameMode == 5
					WriteSaveRAM()
				end if
			end if
			if object.state == 1
				recMilliSeconds = 0
				recSeconds = 0
				recMinutes = 0
			end if
			WriteSaveRAM()
			LoadStage()
		end if
		if object.value3 > 0
			music.volume -= 2
			SetScreenFade(0, 0, 0, object.value3)
		else
			if inputPress.buttonA == 1
				object.value3 = 0
			end if
			if inputPress.buttonB == 1
				object.value3 = 0
			end if
			if inputPress.buttonC == 1
				object.value3 = 0
			end if
			CheckTouchRect(0, 0, screen.xsize, screen.ysize)
			if checkResult > -1
				object.value3 = 0
			end if
		end if
		break
	case 2
		if object.value3 < 288
			music.volume -= 2
			object.value3 += 4
		else
			if options.gameMode == 1
				arrayPos1 = options.saveSlot
				arrayPos1 <<= 3
				arrayPos1 += 1000
				arrayPos1++
				saveRAM[arrayPos1] = player.lives
				WriteSaveRAM()
			end if
			if options.gameMode == 5
				saveRAM[801] += object[0].value0
				WriteSaveRAM()
			end if
			LoadStage()
		end if
		SetScreenFade(0, 0, 0, object.value3)
		break
	case 3
		if object.value3 < 288
			music.volume -= 2
			object.value3 += 4
		else
			timeAttack.result = 0
			vs.bossAttack = 0
			player.score = 0
			starPostID = 0
			recMilliSeconds = 0
			recSeconds = 0
			recMinutes = 0
			stage.milliSeconds = 0
			stage.seconds = 0
			stage.minutes = 0
			LoadStage()
		end if
		SetScreenFade(0, 0, 0, object.value3)
		break
	case 4
		if object.value3 < 288
			music.volume -= 2
			object.value3 += 4
		else
			saveRAM[630] = player.score
			temp0 = stage.playerListPos
			temp0++
			saveRAM[640] = temp0
			saveRAM[650] = stage.listPos
			stage.activeList = PRESENTATION_STAGE
			stage.listPos = 8
			break
		end if
		SetScreenFade(0, 0, 0, object.value3)
		break
	end switch
end event


event ObjectDraw
	switch object.state
	case 0
		DrawSpriteScreenXY(0, object.value1, 96)
		DrawSpriteScreenXY(2, object.value2, 96)
		break
	case 1
		DrawSpriteScreenXY(1, object.value1, 96)
		DrawSpriteScreenXY(2, object.value2, 96)
		break
	end switch
end event


event ObjectStartup
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(0, 0, 64, 16, 1, 239)
	SpriteFrame(0, 0, 56, 16, 66, 239)
	SpriteFrame(0, 0, 64, 16, 123, 239)
end event

event RSDKDraw
	DrawSprite(0)
end event

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