Path: blob/master/Sonic 2/Scripts/HPZ/PipeValve.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Pipe Valve Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.timer1213// States14private alias 0 : PIPEVALVE_INACTIVE15private alias 1 : PIPEVALVE_ACTIVE1617// Player Aliases18private alias object.state : player.state19private alias object.xpos : player.xpos20private alias object.ypos : player.ypos21private alias object.xvel : player.xvel22private alias object.yvel : player.yvel23private alias object.speed : player.speed24private alias object.gravity : player.gravity25private alias object.animation : player.animation2627private alias object.value1 : player.timer282930// ========================31// Function Declarations32// ========================3334reserve function PipeValve_DebugDraw35reserve function PipeValve_DebugSpawn363738// ========================39// Function Definitions40// ========================4142private function PipeValve_DebugDraw43DrawSprite(2)44DrawSprite(0)45end function464748private function PipeValve_DebugSpawn49CreateTempObject(TypeName[Pipe Valve], 0, object.xpos, object.ypos)50object[tempObjectPos].drawOrder = 551end function525354// ========================55// Events56// ========================5758event ObjectUpdate59foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)60BoxCollisionTest(C_TOUCH, object.entityPos, -16, -8, 16, 8, currentPlayer, 0, 0, 0, 0)61if checkResult == true62#platform: USE_STANDALONE63player[currentPlayer].state = Player_State_Air64#endplatform65#platform: USE_ORIGINS66player[currentPlayer].state = Player_State_Air_NoDropDash67#endplatform68player[currentPlayer].gravity = GRAVITY_AIR69player[currentPlayer].animation = ANI_WATERSLIDE70player[currentPlayer].yvel = -0x10000071player[currentPlayer].xpos = object.xpos72player[currentPlayer].ypos = object.ypos73player[currentPlayer].speed = 074player[currentPlayer].xvel = 075player[currentPlayer].timer = 07677if object.state == PIPEVALVE_INACTIVE78object.state = PIPEVALVE_ACTIVE79CreateTempObject(TypeName[Water Geyser], 0, object.xpos, object.ypos)80PlaySfx(SfxName[Water Geyser], false)81end if82end if83next8485if object.state == PIPEVALVE_ACTIVE86object.timer++87if object.timer == 6488object.timer = 089object.state = PIPEVALVE_INACTIVE90end if9192StopSfx(SfxName[Water Splash])93end if9495object.frame = object.timer96object.frame >>= 297object.frame &= 198end event99100101event ObjectDraw102DrawSprite(2)103DrawSprite(object.frame)104end event105106107event ObjectStartup108LoadSpriteSheet("HPZ/Objects.gif")109SpriteFrame(-12, -12, 24, 24, 418, 1)110SpriteFrame(-12, -12, 24, 24, 418, 26)111SpriteFrame(-16, -16, 32, 32, 443, 1)112113foreach (TypeName[Pipe Valve], arrayPos0, ALL_ENTITIES)114object[arrayPos0].drawOrder = 5115next116117SetTableValue(TypeName[Pipe Valve], DebugMode_ObjCount, DebugMode_TypesTable)118SetTableValue(PipeValve_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)119SetTableValue(PipeValve_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)120DebugMode_ObjCount++121end event122123124// ========================125// Editor Events126// ========================127128event RSDKDraw129DrawSprite(0)130end event131132133event RSDKLoad134LoadSpriteSheet("HPZ/Objects.gif")135SpriteFrame(-12, -12, 24, 24, 418, 1)136SpriteFrame(-12, -12, 24, 24, 418, 26)137SpriteFrame(-16, -16, 32, 32, 443, 1)138139SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")140end event141142143