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

//-------Aliases-------//
private alias 44 : TYPE_HPROPELLER

// Function declarations
reserve function HPropeller_DebugDraw
reserve function HPropeller_DebugSpawn

// Static Values

// Tables

function HPropeller_DebugDraw
	DrawSprite(0)
end function


function HPropeller_DebugSpawn
	CreateTempObject(TypeName[H Propeller], 0, object.xpos, object.ypos)
end function


event ObjectMain
	GetTableValue(temp0, 10, StageSetup_table9)
	temp0 >>= 8
	temp0 -= 112
	foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
		BoxCollisionTest(C_TOUCH, object.entityPos, -64, temp0, 64, 56, currentPlayer, -1, -1, 1, 1)
		if checkResult == 1
			object[currentPlayer].animation = ANI_FANROTATE
			object[currentPlayer].state = PlayerObject_HandleAir
			object[currentPlayer].gravity = GRAVITY_AIR
			object[currentPlayer].tileCollisions = 1
			object[currentPlayer].speed = object[currentPlayer].xvel
			object[currentPlayer].value1 = 0
			object[currentPlayer].yvel = 0
			temp0 <<= 16
			temp0 += object.ypos
			temp0 -= object[currentPlayer].ypos
			temp0 >>= 4
			object[currentPlayer].ypos += temp0
		end if
	next
end event


event ObjectDraw
	DrawSprite(WFZSetup_value35)
	temp0 = object.ypos
	temp0 += 0x100000
	DrawSpriteXY(WFZSetup_value35, object.xpos, temp0)
end event


event ObjectStartup
	LoadSpriteSheet("SCZ/Objects.gif")
	SpriteFrame(-62, -2, 124, 5, 1, 171)
	SpriteFrame(-40, -2, 78, 5, 1, 177)
	SpriteFrame(-24, -2, 46, 5, 1, 183)
	SpriteFrame(-11, -1, 22, 4, 1, 189)
	SpriteFrame(-22, -2, 46, 5, 1, 194)
	SpriteFrame(-39, -2, 79, 5, 1, 200)
	foreach (TypeName[H Propeller], arrayPos0, ALL_ENTITIES)
		object[arrayPos0].drawOrder = 5
	next
	SetTableValue(TypeName[H Propeller], DebugMode_ObjCount, DebugMode_TypesTable)
	SetTableValue(HPropeller_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
	SetTableValue(HPropeller_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
	DebugMode_ObjCount++
end event

event RSDKDraw
	DrawSprite(0)
end event

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