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

//-------Aliases-------//
private alias 55 : TYPE_HATCH


// Static Values

// Tables

event ObjectMain
	temp1 = 0
	foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
		temp0 = object[currentPlayer].yvel
		BoxCollisionTest(C_BOX, object.entityPos, -16, -8, 16, 8, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
		switch checkResult
		case 1
			if object[currentPlayer].animation == ANI_JUMPING
				object[currentPlayer].yvel = temp0
				if object[currentPlayer].yvel > 0
					object[currentPlayer].yvel += object[currentPlayer].value25
					object[currentPlayer].yvel += object[currentPlayer].value25
					FlipSign(object[currentPlayer].yvel)
					object[currentPlayer].gravity = GRAVITY_AIR
				end if
				temp1 = 1
			end if
			break
		case 2
		case 3
			if object[currentPlayer].gravity == GRAVITY_GROUND
				if object[currentPlayer].animation == ANI_JUMPING
					temp1 = 1
				end if
			end if
			break
		end switch
	next
	if temp1 == 1
		PlaySfx(SfxName[Destroy], 0)
		temp0 = object.xpos
		temp0 >>= 16
		temp0 -= 160
		stage.newXBoundary1 = temp0
		ResetObjectEntity(object.entityPos, TypeName[Smoke Puff], 0, object.xpos, object.ypos)
		object[+1].state = 1
		object[+1].inkEffect = INK_ALPHA
		object[+1].alpha = 256
	end if
end event


event ObjectDraw
	DrawSprite(0)
end event


event ObjectStartup
	LoadSpriteSheet("SCZ/Objects.gif")
	SpriteFrame(-16, -8, 32, 16, 409, 1)
end event

event RSDKDraw
	DrawSprite(0)
end event

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