Path: blob/main/Scripts/R3/SpinGate.txt
1319 views
//-----------------Sonic CD Spin Gate Script------------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer6#alias Object.Value1 : Object.Turning7#alias Object.Value2 : Object.CurrentLight89// Gate Light Aliases10#alias Object[+1].Type : GateLight1.Type11#alias Object[+2].Type : GateLight2.Type12#alias Object[+3].Type : GateLight3.Type1314// States15#alias 0 : SPINGATE_IDLE16#alias 1 : SPINGATE_TURNING1718// Directions19#alias 2 : FACING_UPEND_RIGHT202122sub ObjectMain23if Object.State == SPINGATE_TURNING24if Object.Timer < 9625Object.Timer++26else27Object.Timer = 028Object.State = SPINGATE_IDLE29end if30end if31end sub323334sub ObjectPlayerInteraction35if Object.State == SPINGATE_IDLE3637PlayerObjectCollision(C_TOUCH, -8, -8, 8, 8)38if CheckResult == true3940if Object.Turning == false4142Object.State = SPINGATE_TURNING4344Object.CurrentLight++45Object.CurrentLight &= 34647Object.Turning = true4849switch Object.CurrentLight50case 051GateLight1.Type = TypeName[Blank Object]52GateLight2.Type = TypeName[Blank Object]53GateLight3.Type = TypeName[Blank Object]54break5556case 157Object[+1].Type = TypeName[Gate Light]58break5960case 261Object[+2].Type = TypeName[Gate Light]62break6364case 365Object[+3].Type = TypeName[Gate Light]66break6768end switch6970end if7172else73Object.Turning = false74end if7576end if77end sub787980sub ObjectDraw81TempValue0 = Object.Timer82TempValue0 >>= 283TempValue0 &= 38485switch TempValue086case 087case 188case 289DrawSprite(TempValue0)90break9192case 393Object.Direction = FACING_UPEND_RIGHT94DrawSpriteFX(3, FX_FLIP, Object.XPos, Object.YPos)95break9697end switch98end sub99100101sub ObjectStartup102LoadSpriteSheet("R3/Objects2.gif")103104SpriteFrame(-16, -8, 32, 16, 18, 50) // #0 - Spin Gate105SpriteFrame(-16, -16, 32, 32, 51, 0) // #1 - Spin Gate Rotate Frame 0106SpriteFrame(-16, -16, 32, 32, 84, 0) // #2 - Spin Gate Rotate Frame 1107SpriteFrame(-16, -16, 32, 32, 51, 0) // #3 - Spin Gate Rotate Frame 2108end sub109110111// ========================112// Editor Subs113// ========================114115sub RSDKDraw116DrawSprite(0)117end sub118119120sub RSDKLoad121LoadSpriteSheet("R3/Objects2.gif")122123SpriteFrame(-16, -8, 32, 16, 18, 50) // #0 - Spin Gate124125SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")126end sub127128129