Path: blob/main/Scripts/R1/RPlatform.txt
1319 views
//---------------Sonic CD Rise Platform Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Raising6#alias Object.Value1 : Object.Timer7#alias Object.Value2 : Object.YPlayerFloor8#alias Object.Value3 : Object.RiseTimer9#alias Object.Value4 : Object.YVelocity10#alias Object.Value5 : Object.YOriginPos1112// States13#alias 0 : RISEPLATFORM_IDLE14#alias 1 : RISEPLATFORM_CRUMBLE15#alias 2 : RISEPLATFORM_RISE16#alias 3 : RISEPLATFORM_FLOAT1718// Priority19#alias 0 : PRIORITY_BOUNDS20#alias 1 : PRIORITY_ACTIVE212223sub ObjectMain24switch Object.State25case RISEPLATFORM_IDLE26Object.YPlayerFloor = 027if Object.Raising == true28Object.State = RISEPLATFORM_CRUMBLE29Object.Priority = PRIORITY_ACTIVE30Object.YVelocity = -0x4000031Object.RiseTimer = 032end if33break3435case RISEPLATFORM_CRUMBLE36Object.YPlayerFloor = Object.YVelocity37if Object.RiseTimer < 838Object.RiseTimer++39else40Object.RiseTimer = 041Object.State = RISEPLATFORM_RISE42end if43if Object.OutOfBounds == true44Object.YPos = Object.YOriginPos45Object.State = RISEPLATFORM_IDLE46Object.Timer = 047end if48break4950case RISEPLATFORM_RISE51if Object.YVelocity < 052Object.YVelocity += 0x200053else54Object.State = RISEPLATFORM_FLOAT55end if56Object.YPlayerFloor = Object.YVelocity57if Object.OutOfBounds == true58Object.YPos = Object.YOriginPos59Object.State = RISEPLATFORM_IDLE60Object.Timer = 061end if62break6364case RISEPLATFORM_FLOAT65if Object.Raising == true66if Object.Timer < 1667Object.Timer++68TempValue0 = Object.Timer69TempValue0 &= 370if TempValue0 == 371Object.YPlayerFloor = 0x1000072else73Object.YPlayerFloor = 074end if75else76Object.YPlayerFloor = 077end if78else79if Object.Timer > 080Object.Timer--81TempValue0 = Object.Timer82TempValue0 &= 383if TempValue0 == 384Object.YPlayerFloor = -0x1000085else86Object.YPlayerFloor = 087end if88else89Object.YPlayerFloor = 090end if91end if9293if Object.OutOfBounds == true94Object.YPos = Object.YOriginPos95Object.State = RISEPLATFORM_IDLE96Object.Timer = 097end if98break99100end switch101Object.Raising = false102end sub103104105sub ObjectPlayerInteraction106PlayerObjectCollision(C_PLATFORM, -32, -9, 32, 12)107if CheckResult == true108Object.Raising = true109Player.YPos += Object.YPlayerFloor110end if111end sub112113114sub ObjectDraw115Object.YPos += Object.YPlayerFloor116DrawSprite(0)117end sub118119120sub ObjectStartup121LoadSpriteSheet("R1/Objects.gif")122123SpriteFrame(-32, -16, 64, 32, 101, 109) // #0 - Rise Platform124125ArrayPos0 = 32126while ArrayPos0 < 1056127if Object[ArrayPos0].Type == TypeName[Rise Platform]128Object[ArrayPos0].YOriginPos = Object[ArrayPos0].YPos129end if130ArrayPos0++131loop132end sub133134135// ========================136// Editor Subs137// ========================138139sub RSDKDraw140DrawSprite(0)141end sub142143144sub RSDKLoad145LoadSpriteSheet("R1/Objects.gif")146147SpriteFrame(-32, -16, 64, 32, 101, 109) // #0 - Rise Platform148149SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")150end sub151152153