Path: blob/main/Scripts/R6/BigPlatform.txt
1319 views
//----------------Sonic CD Big Platform Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value1 : Object.YDrawPos6#alias Object.Value2 : Object.YOffSet7#alias Object.Value3 : Object.Oscillation89// HUD Alias10#alias Object[24].PropertyValue : HUD.CurrentTimePeriod1112// States13#alias 0 : BIGPLATFORM_INACTIVE14#alias 1 : BIGPLATFORM_OPEN15#alias 2 : BIGPLATFORM_CLOSE1617// Collision18#alias 1 : PLAYER_COL_FLOOR1920// Priority21#alias 0 : PRIORITY_BOUNDS22#alias 1 : PRIORITY_ACTIVE2324// Time Periods25#alias 0 : TIME_PRESENT26#alias 1 : TIME_PAST27#alias 2 : TIME_GOOD_FUTURE28#alias 3 : TIME_BAD_FUTURE29303132sub ObjectMain33switch Object.State34case BIGPLATFORM_INACTIVE35PlayerObjectCollision(C_TOUCH, -96, -160, 128, 160)36if CheckResult == true37TempValue0 = Player.XPos38TempValue0 -= Object.XPos39// Check that the player is 128 pixels away to the right from this40if TempValue0 > 0x80000041Object.State = BIGPLATFORM_CLOSE42Object.Priority = PRIORITY_ACTIVE43else44Object.State = BIGPLATFORM_OPEN45Object.Priority = PRIORITY_ACTIVE46end if47end if48break4950case BIGPLATFORM_OPEN51TempValue0 = Player.XPos52TempValue0 -= Object.XPos53// Check that the player is 128 pixels away to the right from this54if TempValue0 > 0x80000055Object.State = BIGPLATFORM_CLOSE56end if5758if Object.Oscillation > 059Object.Oscillation -= 260end if61break6263case BIGPLATFORM_CLOSE64if Player.XPos < Object.XPos65Object.State = BIGPLATFORM_OPEN66end if67if Object.Oscillation < 25668Object.Oscillation += 269end if70break7172end switch7374Cos(Object.YOffSet, Object.Oscillation)75Object.YOffSet <<= 1376Object.YOffSet += 0x40000077Object.YOffSet += Object.YPos78Object.YOffSet &= 0xFFFF0000 // Truncate the value79Object.YOffSet -= Object.YDrawPos8081PlayerObjectCollision(C_TOUCH, -328, -256, 328, 256)82if CheckResult == false83Object.State = BIGPLATFORM_INACTIVE84Object.Priority = PRIORITY_BOUNDS85Object.Oscillation = 25686end if87end sub888990sub ObjectPlayerInteraction91TempValue0 = Object.YPos92Object.YPos = Object.YDrawPos93PlayerObjectCollision(C_BOX, -48, -81, 48, 80)94if CheckResult == PLAYER_COL_FLOOR95Player.YPos += Object.YOffSet96Player.YPos += 0x1000097end if98Object.YPos = TempValue099end sub100101102sub ObjectDraw103Cos(Object.YDrawPos, Object.Oscillation)104Object.YDrawPos <<= 13105Object.YDrawPos += 0x400000106Object.YDrawPos += Object.YPos107Object.YDrawPos &= 0xFFFF0000 // Truncate the value108DrawSpriteXY(0, Object.XPos, Object.YDrawPos)109end sub110111112sub ObjectStartup113LoadSpriteSheet("R6/Objects4.gif")114115if HUD.CurrentTimePeriod == TIME_GOOD_FUTURE116SpriteFrame(-48, -80, 96, 192, 98, 1) // #0 - Big Platform117else118SpriteFrame(-48, -80, 96, 192, 1, 1) // #0 - Big Platform119end if120121ArrayPos0 = 32122while ArrayPos0 < 1056123if Object[ArrayPos0].Type == TypeName[Big Platform]124Object[ArrayPos0].Oscillation = 256125end if126ArrayPos0++127loop128end sub129130131// ========================132// Editor Subs133// ========================134135sub RSDKDraw136DrawSprite(0)137end sub138139140sub RSDKLoad141LoadSpriteSheet("R6/Objects4.gif")142143CallFunction(EditorHelpers_FindTimePeriod)144if CheckResult == TIME_GOOD_FUTURE145SpriteFrame(-48, -80, 96, 192, 98, 1) // #0 - Big Platform146else147SpriteFrame(-48, -80, 96, 192, 1, 1) // #0 - Big Platform148end if149150SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")151end sub152153154