Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R1/FlipDoor.txt
1319 views
1
//-----------------Sonic CD Flip Door Script------------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object.Value0 : Object.Timer
7
8
// Stage SFX
9
#alias 4 : SFX_S_DOOR
10
11
// Property Values
12
#alias 0 : HORIZONTAL_DOOR
13
#alias 1 : VERTICAL_DOOR
14
15
16
sub ObjectPlayerInteraction
17
if Object.PropertyValue == HORIZONTAL_DOOR
18
PlayerObjectCollision(C_PLATFORM, -24, -4, 24, 32)
19
PlayerObjectCollision(C_TOUCH, -24, -8, 24, 8)
20
if CheckResult == true
21
if Player.YPos > Object.YPos
22
if Object.Timer == 0
23
PlayStageSfx(SFX_S_DOOR, 0)
24
end if
25
26
Object.Timer = 10
27
end if
28
end if
29
else
30
if Player.XPos < Object.XPos
31
PlayerObjectCollision(C_TOUCH, -16, -24, 0, 24)
32
if CheckResult == true
33
if Object.Timer == 0
34
PlayStageSfx(SFX_S_DOOR, 0)
35
end if
36
37
Object.Timer = 10
38
end if
39
else
40
if Object.Timer == 0
41
PlayerObjectCollision(C_BOX, -24, -24, 4, 24)
42
end if
43
end if
44
end if
45
end sub
46
47
48
sub ObjectDraw
49
if Object.PropertyValue == HORIZONTAL_DOOR
50
if Object.Timer > 0
51
DrawSprite(1)
52
Object.Timer--
53
else
54
DrawSprite(0)
55
end if
56
else
57
if Object.Timer > 0
58
DrawSprite(3)
59
Object.Timer--
60
else
61
DrawSprite(2)
62
end if
63
end if
64
end sub
65
66
67
sub ObjectStartup
68
LoadSpriteSheet("R1/Objects.gif")
69
70
SpriteFrame(-24, -4, 48, 8, 117, 34) // #0 - Flip Door Horizontal
71
SpriteFrame(-24, -44, 8, 48, 167, 43) // #1 - Flip Door Horizontal Open
72
SpriteFrame(-4, -24, 8, 48, 176, 43) // #2 - Flip Door Vertical
73
SpriteFrame(-4, -24, 48, 8, 117, 34) // #3 - Flip Door Vertical Open
74
75
ArrayPos0 = 32
76
while ArrayPos0 < 1056
77
if Object[ArrayPos0].Type == TypeName[Flip Door]
78
Object[ArrayPos0].DrawOrder = 5
79
end if
80
ArrayPos0++
81
loop
82
end sub
83
84
85
// ========================
86
// Editor Subs
87
// ========================
88
89
sub RSDKEdit
90
if Editor.ReturnVariable == true
91
switch Editor.VariableID
92
case EDIT_VAR_PROPVAL // Property Value
93
CheckResult = Object.PropertyValue
94
CheckResult &= 1
95
break
96
case 0 // orientation
97
CheckResult = Object.PropertyValue
98
CheckResult &= 1
99
break
100
end switch
101
else
102
switch Editor.VariableID
103
case EDIT_VAR_PROPVAL // Property Value
104
Object.PropertyValue = Editor.VariableValue
105
Object.PropertyValue &= 1
106
break
107
case 0 // orientation
108
Object.PropertyValue = Editor.VariableValue
109
Object.PropertyValue &= 1
110
break
111
end switch
112
end if
113
end sub
114
115
116
sub RSDKDraw
117
DrawSprite(Object.PropertyValue)
118
end sub
119
120
121
sub RSDKLoad
122
LoadSpriteSheet("R1/Objects.gif")
123
124
SpriteFrame(-24, -4, 48, 8, 117, 34) // #0 - Flip Door Horizontal
125
SpriteFrame(-4, -24, 8, 48, 176, 43) // #1 - Flip Door Vertical
126
127
128
AddEditorVariable("orientation")
129
SetActiveVariable("orientation")
130
AddEnumVariable("Horizontal", 0)
131
AddEnumVariable("Vertical", 1)
132
end sub
133
134