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

//-------Aliases-------//
private alias 47 : TYPE_WATERFALL

// Function declarations
reserve function Waterfall_DebugDraw
reserve function Waterfall_DebugSpawn

// Static Values
private value Waterfall_value35 = 0;

// Tables

function Waterfall_DebugDraw
	temp0 = object[0].value17
	temp0 -= Waterfall_value35
	DrawSprite(temp0)
end function


function Waterfall_DebugSpawn
	temp0 = object[0].value17
	temp0 -= Waterfall_value35
	CreateTempObject(TypeName[Waterfall], temp0, object.xpos, object.ypos)
	object[tempObjectPos].inkEffect = INK_ALPHA
	object[tempObjectPos].alpha = 160
	object[tempObjectPos].drawOrder = 5
	count.water++
	if count.water >= water.count
		temp1 = count.water
		temp1 -= water.count
		GetBit(temp2, temp1, 3)
		temp1 &= 7
		temp1 <<= 2
		temp3 = 0
		while temp3 < 4
			GetTableValue(temp0, temp1, PlayerObject_SonicSuper3Pal)
			SetTableValue(temp0, temp3, PlayerObject_SonicSuperPal)
			SetTableValue(temp0, temp3, PlayerObject_SonicSuperAltPal)
			SetTableValue(temp0, temp3, PlayerObject_SonicSuper2Pal)
			SetTableValue(temp0, temp3, PlayerObject_SonicSuper2AltPal)
			temp3++
			temp1++
		loop
		if temp2 == 1
			//SetPaletteEntry(0, 1, 0x0060e0)
			//SetPaletteEntry(1, 1, 0x0060e0)
		else
			//SetPaletteEntry(0, 1, 0x000000)
			//SetPaletteEntry(1, 1, 0x000000)				
		end if
		CallFunction(PlayerObject_ProcessSuperPalS)
	end if
end function


event ObjectMain
end event


event ObjectDraw
	DrawSpriteFX(object.propertyValue, FX_INK, object.xpos, object.ypos)
end event


event ObjectStartup
	CheckCurrentStageFolder("Zone01")
	if checkResult == 1
		LoadSpriteSheet("EHZ/Objects.gif")
		SpriteFrame(-32, -8, 64, 16, 192, 0)
		SpriteFrame(-32, -128, 64, 256, 192, 0) //used
		SpriteFrame(-32, -8, 64, 160, 192, 64) //2
		SpriteFrame(-32, -8, 64, 128, 192, 48) //3
		SpriteFrame(0, 0, 1, 1, 1, 1)
		SpriteFrame(-32, -8, 64, 48, 192, 48) //5
		SpriteFrame(-32, -8, 64, 16, 192, 64)
		SpriteFrame(-32, -128, 64, 192, 192, 0) //used
		SpriteFrame(-32, -32, 64, 96, 192, 64) //used
	else
		LoadSpriteSheet("MBZ/Objects.gif")
		SpriteFrame(-32, -128, 64, 16, 1, 435)
		SpriteFrame(-32, -128, 64, 256, 1, 435)
		SpriteFrame(0, 0, 1, 1, 1, 1)
		SpriteFrame(-32, -32, 64, 64, 1, 451)
		SpriteFrame(0, 0, 1, 1, 1, 1)
		SpriteFrame(-32, -64, 64, 160, 1, 451)
		SpriteFrame(-32, -128, 64, 16, 1, 435)
		SpriteFrame(-32, -128, 64, 192, 1, 435)
		SpriteFrame(-32, -32, 64, 96, 1, 499)
	end if
	foreach (TypeName[Waterfall], arrayPos0, ALL_ENTITIES)
		object[arrayPos0].inkEffect = INK_ALPHA
		object[arrayPos0].alpha = 160
		object[arrayPos0].drawOrder = 5
	next
	temp0 = 0
	Waterfall_value35 = DebugMode_ObjCount
	while temp0 < 1 //You don't need more than that
		SetTableValue(TypeName[Waterfall], DebugMode_ObjCount, DebugMode_TypesTable)
		SetTableValue(Waterfall_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
		SetTableValue(Waterfall_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
		DebugMode_ObjCount++
		temp0++
	loop
end event

event RSDKDraw
	DrawSprite(0)
end event

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