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

//-------Aliases-------//
private alias 70 : TYPE_EGGMANTOTEM


// Static Values

// Tables

event ObjectMain
	switch object.state
	case 0
		object.ypos -= 0x10000
		object.value7++
		object.value7 %= 40
		if object.value7 == 8
			PlaySfx(SfxName[Rumble], 0)
		end if
		temp0 = object.value7
		temp0 &= 7
		if temp0 == 0
			screen.shakeX = 1
		end if
		temp0 = object.value7
		temp0 &= 3
		if temp0 == 0
			screen.shakeY = 2
		end if
		object.value3--
		if object.value3 == 0
			object.state++
		end if
		break
	case 1
		break
	case 2
		FlipSign(object.value8)
		object.value3--
		if object.value3 == 0
			object.state = 1
			object.value8 = 0
		end if
		break
	case 3
		object.ypos += 0x10000
		object.value7++
		object.value7 %= 40
		temp0 = object.value7
		temp0 &= 7
		if temp0 == 0
			screen.shakeX = 1
		end if
		temp0 = object.value7
		temp0 &= 3
		if temp0 == 0
			screen.shakeY = 2
		end if
		object.value3--
		if object.value3 == 0
			object.type = TypeName[Blank Object]
		end if
		break
	end switch
	foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
		if object.direction == FLIP_NONE
			BoxCollisionTest(C_BOX, object.entityPos, -16, -64, 24, 64, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			if object.state == 3
				if checkResult == 1
					object[currentPlayer].ypos += 0x10000
				end if
			end if
		else
			BoxCollisionTest(C_BOX, object.entityPos, -24, -64, 16, 64, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			if object.state == 3
				if checkResult == 1
					object[currentPlayer].ypos += 0x10000
				end if
			end if
		end if
	next
end event


event ObjectDraw
	temp0 = object.xpos
	temp0 += object.value8
	temp1 = object.ypos
	temp1 += object.value8
	DrawSpriteFX(0, FX_FLIP, temp0, temp1)
	if object.state == 2
		temp1 += object.value9
		DrawSpriteFX(1, FX_FLIP, temp0, temp1)
	end if
end event


event ObjectStartup
	CheckCurrentStageFolder("Zone03")
	if checkResult == 1
		LoadSpriteSheet("ARZ/Objects.gif")
		SpriteFrame(0, -64, 32, 160, 223, 1)
		SpriteFrame(19, -13, 12, 8, 211, 24)
	else
		LoadSpriteSheet("MBZ/Objects.gif")
		SpriteFrame(0, -64, 32, 160, 1, 95)
		SpriteFrame(19, -13, 12, 8, 328, 31)
	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
