Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/Menu/HelpButtons.txt
1319 views
1
//----------------Sonic CD Help Buttons Script----------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object[0].State : Object.HelpState
7
#alias Object[0].Value0 : Object.HelpFade
8
#alias Object[0].Value1 : Object.ButtonPressed
9
#alias Object[0].Value3 : Object.CurrentPage
10
11
// Global SFX
12
#alias 26 : SFX_G_OUTTAHERE
13
#alias 27 : SFX_G_SELECT
14
15
//Engine & CallBacks
16
#alias 2 : MESSAGE_LOSTFOCUS
17
18
// Device Type
19
#alias 1 : RETRO_MOBILE
20
21
// Help Menu States
22
#alias 2 : HELPMENU_CONTROLS
23
#alias 3 : HELPMENU_PAGEDOWN
24
#alias 4 : HELPMENU_PAGEUP
25
#alias 5 : HELPMENU_LEAVE
26
27
// Property Values
28
#alias 0 : BUTTON_DOWN
29
#alias 1 : BUTTON_UP
30
#alias 2 : BUTTON_BACK
31
32
33
sub ObjectMain
34
if Object.HelpState == HELPMENU_CONTROLS
35
if Engine.Message == MESSAGE_LOSTFOCUS
36
Object.ButtonPressed = 0
37
end if
38
39
TempValue0 = Object.XPos
40
TempValue0 >>= 16
41
TempValue1 = TempValue0
42
43
TempValue0 -= 18
44
TempValue0 -= Screen.XOffset
45
46
TempValue1 += 18
47
TempValue1 -= Screen.XOffset
48
CheckTouchRect(TempValue0, 0, TempValue1, 48)
49
if CheckResult > -1
50
Object.ButtonPressed = Object.PropertyValue
51
Object.ButtonPressed++
52
else
53
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
54
if CheckResult < 0
55
switch Object.PropertyValue
56
case BUTTON_DOWN
57
if Object.ButtonPressed == true
58
Object.ButtonPressed = 0
59
if Object.CurrentPage < 8
60
PlaySfx(SFX_G_SELECT, false)
61
Object.HelpFade = 256
62
Object.HelpState = HELPMENU_PAGEDOWN
63
end if
64
end if
65
break
66
67
case BUTTON_UP
68
if Object.ButtonPressed == 2
69
Object.ButtonPressed = 0
70
if Object.CurrentPage > 0
71
PlaySfx(SFX_G_SELECT, false)
72
Object.HelpState = HELPMENU_PAGEUP
73
end if
74
end if
75
break
76
77
case BUTTON_BACK
78
if Object.ButtonPressed == 3
79
Object.ButtonPressed = 0
80
PlaySfx(SFX_G_OUTTAHERE, false)
81
StopMusic()
82
Object.HelpState = HELPMENU_LEAVE
83
end if
84
break
85
86
end switch
87
else
88
switch Object.PropertyValue
89
case BUTTON_DOWN
90
if Object.ButtonPressed == 1
91
Object.ButtonPressed = 0
92
end if
93
break
94
95
case BUTTON_UP
96
if Object.ButtonPressed == 2
97
Object.ButtonPressed = 0
98
end if
99
break
100
101
case BUTTON_BACK
102
if Object.ButtonPressed == 3
103
Object.ButtonPressed = 0
104
end if
105
break
106
107
end switch
108
end if
109
end if
110
end if
111
end sub
112
113
114
sub ObjectDraw
115
Object.Scale = 128
116
switch Object.PropertyValue
117
case BUTTON_DOWN
118
if Object.ButtonPressed == 1
119
DrawSpriteFX(1, FX_SCALE, Object.XPos, Object.YPos)
120
else
121
DrawSpriteFX(0, FX_SCALE, Object.XPos, Object.YPos)
122
end if
123
break
124
case BUTTON_UP
125
if Object.ButtonPressed == 2
126
DrawSpriteFX(3, FX_SCALE, Object.XPos, Object.YPos)
127
else
128
DrawSpriteFX(2, FX_SCALE, Object.XPos, Object.YPos)
129
end if
130
break
131
case BUTTON_BACK
132
if Object.ButtonPressed == 3
133
DrawSpriteFX(5, FX_SCALE, Object.XPos, Object.YPos)
134
else
135
DrawSpriteFX(4, FX_SCALE, Object.XPos, Object.YPos)
136
end if
137
break
138
end switch
139
end sub
140
141
142
sub ObjectStartup
143
LoadSpriteSheet("Menu/Buttons.gif")
144
145
SpriteFrame(-63, -39, 126, 78, 1, 1) // #0 - Down Button
146
SpriteFrame(-60, -37, 120, 74, 132, 3) // #1 - Down Button Highlight
147
SpriteFrame(-63, -39, 126, 78, 1, 81) // #2 - Up Button
148
SpriteFrame(-60, -37, 120, 74, 132, 83) // #3 - Up Button Highlight
149
150
#platform: Use_Origins
151
if Engine.DeviceType == RETRO_MOBILE
152
SpriteFrame(-63, -39, 126, 78, 1, 161) // #4 - Back Button
153
SpriteFrame(-60, -37, 120, 74, 132, 163)// #5 - Back Button Highlight
154
else
155
SpriteFrame(-63, -39, 0, 0, 0, 0)
156
SpriteFrame(-60, -37, 0, 0, 0, 0)
157
end if
158
#endplatform
159
160
#platform: Use_Standalone
161
SpriteFrame(-63, -39, 126, 78, 1, 161) // #4 - Back Button
162
SpriteFrame(-60, -37, 120, 74, 132, 163) // #5 - Back Button Highlight
163
#endplatform
164
165
TempValue0 = Screen.CenterX
166
TempValue0 -= 160
167
TempValue0 <<= 16
168
169
ArrayPos0 = 32
170
while ArrayPos0 < 1056
171
if Object[ArrayPos0].Type == TypeName[Help Buttons]
172
Object[ArrayPos0].XPos += TempValue0
173
end if
174
ArrayPos0++
175
loop
176
end sub
177
178
179
// ========================
180
// Editor Subs
181
// ========================
182
183
sub RSDKEdit
184
if Editor.ReturnVariable == true
185
switch Editor.VariableID
186
case EDIT_VAR_PROPVAL // Property Value
187
CheckResult = Object.PropertyValue
188
break
189
case 0 // Type
190
CheckResult = Object.PropertyValue
191
break
192
end switch
193
else
194
switch Editor.VariableID
195
case EDIT_VAR_PROPVAL // Property Value
196
Object.PropertyValue = Editor.VariableValue
197
break
198
case 0 // Type
199
Object.PropertyValue = Editor.VariableValue
200
break
201
end switch
202
end if
203
end sub
204
205
206
sub RSDKDraw
207
switch Object.PropertyValue
208
case 0
209
DrawSprite(0)
210
break
211
212
case 1
213
DrawSprite(2)
214
break
215
216
case 2
217
DrawSprite(4)
218
break
219
end switch
220
end sub
221
222
223
sub RSDKLoad
224
LoadSpriteSheet("Menu/Buttons.gif")
225
SpriteFrame(-63, -39, 126, 78, 1, 1) // #0 - Down Button
226
SpriteFrame(-60, -37, 120, 74, 132, 3) // #1 - Down Button Highlight
227
SpriteFrame(-63, -39, 126, 78, 1, 81) // #2 - Up Button
228
SpriteFrame(-60, -37, 120, 74, 132, 83) // #3 - Up Button Highlight
229
SpriteFrame(-63, -39, 126, 78, 1, 161) // #4 - Back Button
230
SpriteFrame(-60, -37, 120, 74, 132, 163) // #5 - Back Button Highlight
231
232
AddEditorVariable("Type")
233
SetActiveVariable("Type")
234
AddEnumVariable("Down Button", 0)
235
AddEnumVariable("Up Button", 1)
236
AddEnumVariable("Back Button", 2)
237
end sub
238
239