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

//-------Aliases-------//
private alias 60 : TYPE_ARROW


// Static Values

// Tables

event ObjectMain
	if object.value0 > 0
		object.value0--
		if object.value0 == 15
			PlaySfx(SfxName[Small Fireball], 0)
		end if
	end if
	if object.value0 < 16
		object.xpos += object.xvel
	end if
	if object.value0 < 12
		if object.value1 == 2
			if object.direction == FLIP_NONE
				ObjectTileCollision(CSIDE_LWALL, -16, 0, 0)
			else
				ObjectTileCollision(CSIDE_RWALL, 16, 0, 0)
			end if
			if checkResult == 1
				object.type = TypeName[Blank Object]
			end if
		else
			if object.direction == FLIP_NONE
				ObjectTileCollision(CSIDE_LWALL, 16, 0, 0)
			else
				ObjectTileCollision(CSIDE_RWALL, -16, 0, 0)
			end if
			if checkResult == 1
				object.value1 = 2
				object.drawOrder = 1
			end if
		end if
	end if
	foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
		BoxCollisionTest(C_TOUCH, object.entityPos, -8, -4, 8, 4, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
		if checkResult == 1
			CallFunction(PlayerObject_Hit)
		end if
	next
	if object.outOfBounds == 1
		object.type = TypeName[Blank Object]
	end if
end event


event ObjectDraw
	if object.value1 == 2
		DrawSpriteFX(0, FX_FLIP, object.xpos, object.ypos)
	else
		if object.value1 == 0
			AddDrawListEntityRef(2, object.entityPos)
		else
			if object.value0 > 0
				DrawSpriteFX(1, FX_FLIP, object.value2, object.ypos)
			end if
			if object.value0 < 16
				DrawSpriteFX(0, FX_FLIP, object.xpos, object.ypos)
			end if
		end if
		object.value1 ^= 1
	end if
end event


event ObjectStartup
	LoadSpriteSheet("ARZ/Objects.gif")
	SpriteFrame(-16, -4, 32, 7, 1, 69)
	SpriteFrame(11, -8, 5, 16, 53, 65)
end event

event RSDKDraw
	DrawSprite(0)
end event

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