Path: blob/main/Scripts/R6/FlipDoor.txt
1319 views
//-----------------Sonic CD Flip Door Script------------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer67// States8#alias 0 : FLIPDOOR_CLOSED9#alias 1 : FLIPDOOR_HALF_OPEN10#alias 2 : FLIPDOOR_OPEN11#alias 3 : FLIPDOOR_HALF_CLOSED1213// Stages SFX14#alias 9 : SFX_S_DOOR151617sub ObjectMain1819if Object.Frame == 020if Player.ObjectInteraction == true21PlayerObjectCollision(C_BOX, -4, -32, 4, 32)22end if23end if2425if Object.Direction == FACING_RIGHT2627switch Object.State28case FLIPDOOR_CLOSED29Object.Frame = 030PlayerObjectCollision(C_TOUCH, -48, -32, 0, 32)31if CheckResult == true32Object.State = FLIPDOOR_HALF_OPEN33PlayStageSfx(SFX_S_DOOR, false)34end if35break3637case FLIPDOOR_HALF_OPEN38if Object.Timer < 439Object.Timer++40Object.Frame = 141else42Object.Timer = 043Object.State = FLIPDOOR_OPEN44end if45break4647case FLIPDOOR_OPEN48Object.Frame = 249PlayerObjectCollision(C_TOUCH, -48, -32, 64, 64)50if CheckResult == false51Object.State = FLIPDOOR_HALF_CLOSED52end if53break5455case FLIPDOOR_HALF_CLOSED56if Object.Timer < 457Object.Timer++58Object.Frame = 159else60Object.Timer = 061Object.State = FLIPDOOR_CLOSED62end if63break64end switch65else6667switch Object.State68case FLIPDOOR_CLOSED69Object.Frame = 070PlayerObjectCollision(C_TOUCH, 0, -32, 48, 32)71if CheckResult == true72Object.State = FLIPDOOR_HALF_OPEN73PlayStageSfx(SFX_S_DOOR, false)74end if75break7677case FLIPDOOR_HALF_OPEN78if Object.Timer < 479Object.Timer++80Object.Frame = 181else82Object.Timer = 083Object.State = FLIPDOOR_OPEN84end if85break8687case FLIPDOOR_OPEN88Object.Frame = 289PlayerObjectCollision(C_TOUCH, -64, -32, 48, 64)90if CheckResult == false91Object.State = FLIPDOOR_HALF_CLOSED92end if93break9495case FLIPDOOR_HALF_CLOSED96if Object.Timer < 497Object.Timer++98Object.Frame = 199else100Object.Timer = 0101Object.State = FLIPDOOR_CLOSED102end if103break104end switch105end if106end sub107108109sub ObjectDraw110DrawSpriteFX(Object.Frame, FX_FLIP, Object.XPos, Object.YPos)111end sub112113114sub ObjectStartup115LoadSpriteSheet("R6/Objects.gif")116117// Sprite frames118SpriteFrame(-4, -32, 8, 64, 230, 1) // #0 - FlipDoor Closed119SpriteFrame(-4, -32, 48, 48, 83, 34) // #1 - FlipDoor Half-Open120SpriteFrame(-4, -32, 64, 8, 132, 34) // #2 - FlipDoor Open121122123ArrayPos0 = 32124while ArrayPos0 < 1056125if Object[ArrayPos0].Type == TypeName[Flip Door]126Object[ArrayPos0].DrawOrder = 4127Object[ArrayPos0].Direction = Object[ArrayPos0].PropertyValue128end if129ArrayPos0++130loop131end sub132133134// ========================135// Editor Subs136// ========================137138sub RSDKEdit139if Editor.ReturnVariable == true140switch Editor.VariableID141case EDIT_VAR_PROPVAL // Property Value142CheckResult = Object.PropertyValue143break144case 0 // direction145CheckResult = Object.PropertyValue146CheckResult &= 1147break148end switch149else150switch Editor.VariableID151case EDIT_VAR_PROPVAL // Property Value152Object.PropertyValue = Editor.VariableValue153break154case 0 // direction155Object.PropertyValue = Editor.VariableValue156Object.PropertyValue &= 1157break158end switch159end if160end sub161162163sub RSDKDraw164Object.Direction = Object.PropertyValue165DrawSpriteFX(0, FX_FLIP, Object.XPos, Object.YPos)166end sub167168169sub RSDKLoad170LoadSpriteSheet("R6/Objects.gif")171172// Sprite frames173SpriteFrame(-4, -32, 8, 64, 230, 1) // #0 - FlipDoor Closed174175AddEditorVariable("direction")176SetActiveVariable("direction")177AddEnumVariable("right", 0)178AddEnumVariable("left", 1)179end sub180181182