Path: blob/main/Scripts/R4/RisingFloat.txt
1319 views
//----------------Sonic CD Rising Float Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value1 : Object.XOriginPos6#alias Object.Value2 : Object.YOriginPos78// States9#alias 0 : RISINGFLOAT_INACTIVE10#alias 1 : RISINGFLOAT_RISE1112// Priority13#alias 0 : PRIORITY_BOUNDS14#alias 1 : PRIORITY_ACTIVE1516// Collision Sides17#alias 1 : CSIDE_LWALL18#alias 2 : CSIDE_RWALL192021sub ObjectMain22Object.YPos = Stage.WaterLevel23Object.YPos <<= 162425if Object.State == RISINGFLOAT_RISE26Object.XPos = Player.XPos2728if Object.XPos < 0x1010000029Object.XPos = 0x1010000030end if3132if Object.XPos > 0x10F2000033Object.XPos = 0x10F2000034else35if Player.YPos > 0x5BE000036if Player.YPos < Object.YPos37ObjectTileCollision(CSIDE_LWALL, 16, 6, 0)38if CheckResult == true39if Player.Speed > 0x1000040Player.Speed = 0x1000041Player.XVelocity = 0x1000042end if43end if44ObjectTileCollision(CSIDE_RWALL, -16, 6, 0)45if CheckResult == true46if Player.Speed < -0x1000047Player.Speed = -0x1000048Player.XVelocity = -0x1000049end if50end if51Player.XPos = Object.XPos52end if53else54ObjectTileCollision(CSIDE_LWALL, 16, 0, 0)55ObjectTileCollision(CSIDE_RWALL, -16, 0, 0)56end if57end if58end if5960if Object.OutOfBounds == true61TempValue0 = Object.XPos62TempValue1 = Object.YPos6364Object.XPos = Object.XOriginPos65Object.YPos = Object.YOriginPos6667if Object.OutOfBounds == true68Object.State = RISINGFLOAT_INACTIVE69Object.Priority = PRIORITY_BOUNDS70else71Object.XPos = TempValue072Object.YPos = TempValue173end if74end if75end sub767778sub ObjectPlayerInteraction79PlayerObjectCollision(C_PLATFORM, -16, -10, 16, 8)80if CheckResult == true81Player.YPos += 0x2000082if Object.State == RISINGFLOAT_INACTIVE83Player.Speed = 084Player.XVelocity = 08586Stage.NewWaterLevel = 0x5E40000 // Y - 1508 in map coords8788Object.State = RISINGFLOAT_RISE89Object.Priority = PRIORITY_ACTIVE90end if91end if92end sub939495sub ObjectDraw96DrawSprite(0)97end sub9899100sub ObjectStartup101LoadSpriteSheet("R4/Objects2.gif")102103SpriteFrame(-16, -8, 32, 16, 67, 235) // Wood Log104105ArrayPos0 = 32106while ArrayPos0 < 1056107if Object[ArrayPos0].Type == TypeName[Rising Float]108Object[ArrayPos0].XOriginPos = Object[ArrayPos0].XPos109Object[ArrayPos0].YOriginPos = Object[ArrayPos0].YPos110end if111ArrayPos0++112loop113end sub114115116// ========================117// Editor Subs118// ========================119120sub RSDKDraw121DrawSprite(0)122end sub123124125sub RSDKLoad126LoadSpriteSheet("R4/Objects2.gif")127128SpriteFrame(-16, -8, 32, 16, 67, 235) // Wood Log129130SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")131end sub132133134