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

//-------Aliases-------//
private alias 67 : TYPE_BUBBLER

// Function declarations
reserve function Bubbler_DebugDraw
reserve function Bubbler_DebugSpawn

// Static Values

// Tables

function Bubbler_DebugDraw
	DrawSprite(0)
end function


function Bubbler_DebugSpawn
	CreateTempObject(TypeName[Bubbler], 0, object.xpos, object.ypos)
end function


event ObjectMain
	object.priority = PRIORITY_ACTIVE
	switch object.state
	case 0
		object.animationTimer++
		object.animationTimer &= 15
		object.frame = object.animationTimer
		object.frame >>= 2
		object.ypos += 0x10000
		ObjectTileCollision(CSIDE_FLOOR, 0, 0, 0)
		if checkResult == 1
			object.state = 1
			object.animationTimer = 0
			object.frame = 4
		end if
		foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
			BoxCollisionTest(C_TOUCH, object.entityPos, -2, -2, 2, 2, currentPlayer, object[currentPlayer].value38, object[currentPlayer].value40, object[currentPlayer].value39, object[currentPlayer].value41)
			if checkResult == 1
				CallFunction(PlayerObject_ProjectileHit)
			end if
		next
		break
	case 1
		object.animationTimer++
		if object.animationTimer >= 4
			object.animationTimer = 0
			object.frame++
			if object.frame >= 11
				object.type = TypeName[Blank Object]
			end if
		end if
		if object.frame < 10
			temp0 = object.frame
			temp0 -= 4
			temp0 >>= 1
			temp0 <<= 2
			temp0 += 4
			temp1 = temp0
			FlipSign(temp0)
			foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
				BoxCollisionTest(C_TOUCH, object.entityPos, temp0, -8, temp1, 0, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
				if checkResult == 1
					CallFunction(PlayerObject_Hit)
				end if
			next
		end if
		break
	end switch
end event


event ObjectDraw
	DrawSprite(object.frame)
end event


event ObjectStartup
	CheckCurrentStageFolder("Zone02")
	if checkResult == 1
		LoadSpriteSheet("CPZ/Objects.gif")
		SpriteFrame(-2, -2, 5, 5, 190, 141)
		SpriteFrame(-2, -2, 5, 5, 196, 141)
		SpriteFrame(-3, -4, 7, 7, 190, 147)
		SpriteFrame(-3, -4, 7, 7, 198, 147)
		SpriteFrame(-4, -6, 8, 6, 157, 2)
		SpriteFrame(-4, -7, 8, 7, 148, 1)
		SpriteFrame(-8, -8, 16, 8, 149, 9)
		SpriteFrame(-8, -14, 16, 14, 149, 18)
		SpriteFrame(-12, -15, 24, 15, 141, 33)
		SpriteFrame(-12, -16, 23, 16, 142, 49)
		SpriteFrame(-7, -13, 14, 14, 151, 66)
	else
		LoadSpriteSheet("MBZ/Objects.gif")
		SpriteFrame(-12, -12, 24, 24, 166, 1)
	end if
	SetTableValue(TypeName[Bubbler], DebugMode_ObjCount, DebugMode_TypesTable)
	SetTableValue(Bubbler_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
	SetTableValue(Bubbler_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
