Path: blob/main/Scripts/R4/MovingWall.txt
1319 views
//-----------------Sonic CD Moving Wall Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer67// HUD alias8#alias Object[24].PropertyValue : HUD.CurrentTimePeriod910// Property Values11#alias 0 : MOVING_WALL12#alias 1 : STOPPED_WALL1314// Time Periods15#alias 0 : TIME_PRESENT16#alias 1 : TIME_PAST17#alias 2 : TIME_GOOD_FUTURE18#alias 3 : TIME_BAD_FUTURE1920// Collision21#alias 3 : PLAYER_COL_RWALL2223// Priotity24#alias 0 : PRIORITY_BOUNDS25#alias 1 : PRIORITY_ACTIVE2627// Control Mode28#alias -1 : CONTROLMODE_NONE293031sub ObjectMain32if Object.PropertyValue == MOVING_WALL33if Player.ControlMode > CONTROLMODE_NONE34if Object.Timer < 38435Object.Timer++36Object.XPos += 0x800037else38Object.Priority = PRIORITY_BOUNDS39Object.PropertyValue = STOPPED_WALL40end if41end if42end if43end sub444546sub ObjectPlayerInteraction47PlayerObjectCollision(C_BOX, -32, -64, 32, 64)48// The player can actually stand in the floor while pushing instead of being thrown out by the wall, this checks fixes it49if CheckResult == PLAYER_COL_RWALL50if Object.Timer == 38351Player.XPos += 0x1000052end if53end if54end sub555657sub ObjectDraw58DrawSprite(0)59DrawSprite(1)60DrawSprite(2)61DrawSprite(3)62DrawSprite(4)63DrawSprite(5)64DrawSprite(6)65DrawSprite(7)66end sub676869sub ObjectStartup70switch HUD.CurrentTimePeriod71case TIME_PRESENT72LoadSpriteSheet("R4/Objects.gif")73TempValue0 = 16374TempValue1 = 175TempValue2 = 19676break7778case TIME_PAST79LoadSpriteSheet("R4/Objects2.gif")80TempValue0 = 181TempValue1 = 15782TempValue2 = 3483break8485case TIME_GOOD_FUTURE86LoadSpriteSheet("R4/Objects2.gif")87TempValue0 = 188TempValue1 = 19089TempValue2 = 3490break9192case TIME_BAD_FUTURE93LoadSpriteSheet("R4/Objects2.gif")94TempValue0 = 195TempValue1 = 22396TempValue2 = 3497break9899end switch100101// R4 Blocks102SpriteFrame(-32, -64, 32, 32, TempValue0, TempValue1)103SpriteFrame(0, -64, 32, 32, TempValue0, TempValue1)104SpriteFrame(-32, -32, 32, 32, TempValue0, TempValue1)105SpriteFrame(0, -32, 32, 32, TempValue0, TempValue1)106SpriteFrame(-32, 0, 32, 32, TempValue0, TempValue1)107SpriteFrame(0, 0, 32, 32, TempValue0, TempValue1)108SpriteFrame(-32, 32, 32, 32, TempValue0, TempValue1)109SpriteFrame(0, 32, 32, 32, TempValue0, TempValue1)110111ArrayPos0 = 32112while ArrayPos0 < 1056113if Object[ArrayPos0].Type == TypeName[Moving Wall]114Object[ArrayPos0].DrawOrder = 4115Object[ArrayPos0].Priority = PRIORITY_ACTIVE116end if117ArrayPos0++118loop119end sub120121122// ========================123// Editor Subs124// ========================125126sub RSDKDraw127DrawSprite(0)128DrawSprite(1)129DrawSprite(2)130DrawSprite(3)131DrawSprite(4)132DrawSprite(5)133DrawSprite(6)134DrawSprite(7)135end sub136137138sub RSDKLoad139CallFunction(EditorHelpers_FindTimePeriod)140switch CheckResult141case TIME_PRESENT142LoadSpriteSheet("R4/Objects.gif")143TempValue0 = 163144TempValue1 = 1145TempValue2 = 196146break147148case TIME_PAST149LoadSpriteSheet("R4/Objects2.gif")150TempValue0 = 1151TempValue1 = 157152TempValue2 = 34153break154155case TIME_GOOD_FUTURE156LoadSpriteSheet("R4/Objects2.gif")157TempValue0 = 1158TempValue1 = 190159TempValue2 = 34160break161162case TIME_BAD_FUTURE163LoadSpriteSheet("R4/Objects2.gif")164TempValue0 = 1165TempValue1 = 223166TempValue2 = 34167break168169end switch170171// R4 Blocks172SpriteFrame(-32, -64, 32, 32, TempValue0, TempValue1)173SpriteFrame(0, -64, 32, 32, TempValue0, TempValue1)174SpriteFrame(-32, -32, 32, 32, TempValue0, TempValue1)175SpriteFrame(0, -32, 32, 32, TempValue0, TempValue1)176SpriteFrame(-32, 0, 32, 32, TempValue0, TempValue1)177SpriteFrame(0, 0, 32, 32, TempValue0, TempValue1)178SpriteFrame(-32, 32, 32, 32, TempValue0, TempValue1)179SpriteFrame(0, 32, 32, 32, TempValue0, TempValue1)180181AddEditorVariable("moveState")182SetActiveVariable("moveState")183AddEnumVariable("Moving Wall", MOVING_WALL)184AddEnumVariable("Stopped Wall", STOPPED_WALL)185end sub186187188