Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/DAGarden/Buttons.txt
1319 views
1
//---------------Sonic CD Touch Buttons Script----------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object.Value1 : Object.ButtonPressed
7
#alias Object.PropertyValue : Object.ButtonID
8
9
// These are also Touch Buttons
10
#alias Object[35].PropertyValue : Object.Button1Value
11
#alias Object[36].PropertyValue : Object.Button2Value
12
#alias Object[37].PropertyValue : Object.Button3Value
13
14
// Little Planet Aliases
15
#alias Object[32].Value1 : LittlePlanet.ZoomDepth
16
#alias Object[32].Value3 : LittlePlanet.RotationSpeed
17
18
// Music Selector Aliases
19
#alias Object[33].Frame : MusicSelector.Frame
20
#alias Object[33].XPos : MusicSelector.XPos
21
#alias Object[33].State : MusicSelector.State
22
#alias Object[33].DrawOrder : MusicSelector.DrawOrder
23
#alias Object[33].Priority : MusicSelector.Priority
24
25
// MenuControl Aliases
26
#alias Object[0].State : MenuControl.State
27
28
// Music Selector States
29
#alias 1 : MUSICSELECTOR_STOP_MOVE_L
30
#alias 2 : MUSICSELECTOR_MOVE_L
31
#alias 4 : MUSICSELECTOR_MOVE_R
32
33
// MenuControl States
34
#alias 1 : MENUCONTROL_FADE_IN
35
#alias 3 : MENUCONTROL_MUSIC_CONTROLS
36
#alias 4 : MENUCONTROL_SET_MUSIC
37
#alias 6 : MENUCONTROL_EXIT
38
39
// Global SFX
40
#alias 23 : SFX_G_MENUBUTTON
41
#alias 27 : SFX_G_SELECT
42
43
//Engine & CallBacks
44
#alias 2 : MESSAGE_LOSTFOCUS
45
46
// Priority
47
#alias 1 : PRIORITY_ACTIVE
48
49
50
sub ObjectMain
51
if MenuControl.State > MENUCONTROL_FADE_IN
52
if MenuControl.State < MENUCONTROL_SET_MUSIC
53
if Engine.Message == MESSAGE_LOSTFOCUS
54
Object.ButtonPressed = 0
55
end if
56
57
TempValue0 = Object.XPos
58
TempValue0 >>= 16
59
TempValue1 = TempValue0
60
61
TempValue0 -= 32
62
TempValue0 -= Screen.XOffset
63
64
TempValue1 += 32
65
TempValue1 -= Screen.XOffset
66
CheckTouchRect(TempValue0, 0, TempValue1, 32)
67
if CheckResult > -1
68
Object.ButtonPressed = Object.ButtonID
69
Object.ButtonPressed++
70
switch Object.ButtonID
71
case 0
72
if LittlePlanet.ZoomDepth < 0x4000
73
LittlePlanet.ZoomDepth += 8
74
end if
75
break
76
case 1
77
if LittlePlanet.ZoomDepth > 48
78
LittlePlanet.ZoomDepth -= 8
79
end if
80
break
81
case 2
82
if LittlePlanet.RotationSpeed < 256
83
LittlePlanet.RotationSpeed += 2
84
end if
85
break
86
case 3
87
if LittlePlanet.RotationSpeed > -256
88
LittlePlanet.RotationSpeed -= 2
89
end if
90
break
91
end switch
92
else
93
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
94
if CheckResult < 0
95
switch Object.ButtonID
96
// Zooming
97
case 0
98
if Object.ButtonPressed == 1
99
Object.ButtonPressed = 0
100
Object.Button1Value = 1
101
end if
102
break
103
104
case 1
105
if Object.ButtonPressed == 2
106
Object.ButtonPressed = 0
107
Object.Button1Value = 0
108
end if
109
break
110
// Rotation
111
case 2
112
if Object.ButtonPressed == 3
113
Object.ButtonPressed = 0
114
end if
115
break
116
117
case 3
118
if Object.ButtonPressed == 4
119
Object.ButtonPressed = 0
120
end if
121
break
122
// Music Selector
123
case 4
124
if Object.ButtonPressed == 5
125
Object.ButtonPressed = 0
126
127
PlaySfx(SFX_G_MENUBUTTON, false)
128
129
MusicSelector.State = MUSICSELECTOR_MOVE_R
130
end if
131
break
132
133
case 5
134
if Object.ButtonPressed == 6
135
Object.ButtonPressed = 0
136
MenuControl.State = MENUCONTROL_SET_MUSIC
137
StopMusic()
138
end if
139
break
140
141
case 6
142
if Object.ButtonPressed == 7
143
Object.ButtonPressed = 0
144
145
PlaySfx(SFX_G_MENUBUTTON, false)
146
147
MusicSelector.State = MUSICSELECTOR_MOVE_L
148
end if
149
break
150
151
case 7
152
if Object.ButtonPressed == 8
153
Object.ButtonPressed = 0
154
155
PlaySfx(SFX_G_SELECT, false)
156
157
MenuControl.State = MENUCONTROL_MUSIC_CONTROLS
158
MusicSelector.XPos = Screen.XSize
159
MusicSelector.XPos += 96
160
MusicSelector.XPos <<= 16
161
162
MusicSelector.State = MUSICSELECTOR_STOP_MOVE_L
163
MusicSelector.DrawOrder = 5
164
MusicSelector.Priority = PRIORITY_ACTIVE
165
166
Object.Button1Value = 4
167
Object.Button2Value = 5
168
Object.Button3Value = 6
169
end if
170
break
171
// Exit
172
case 8
173
if Object.ButtonPressed == 9
174
Object.ButtonPressed = 0
175
StopMusic()
176
PlaySfx(SFX_G_SELECT, false)
177
MenuControl.State = MENUCONTROL_EXIT
178
end if
179
break
180
end switch
181
else // Reset buttons
182
switch Object.ButtonID
183
case 0
184
if Object.ButtonPressed == 1
185
Object.ButtonPressed = 0
186
end if
187
break
188
case 1
189
if Object.ButtonPressed == 2
190
Object.ButtonPressed = 0
191
end if
192
break
193
case 2
194
if Object.ButtonPressed == 3
195
Object.ButtonPressed = 0
196
end if
197
break
198
case 3
199
if Object.ButtonPressed == 4
200
Object.ButtonPressed = 0
201
end if
202
break
203
case 4
204
if Object.ButtonPressed == 5
205
Object.ButtonPressed = 0
206
end if
207
break
208
case 5
209
if Object.ButtonPressed == 6
210
Object.ButtonPressed = 0
211
end if
212
break
213
case 6
214
if Object.ButtonPressed == 7
215
Object.ButtonPressed = 0
216
end if
217
break
218
case 7
219
if Object.ButtonPressed == 8
220
Object.ButtonPressed = 0
221
end if
222
break
223
case 8
224
if Object.ButtonPressed == 9
225
Object.ButtonPressed = 0
226
end if
227
break
228
end switch
229
end if
230
end if
231
end if
232
end if
233
end sub
234
235
236
sub ObjectDraw
237
TempValue0 = Object.ButtonID
238
TempValue0 <<= 1
239
240
TempValue1 = Object.ButtonID
241
TempValue1++
242
if Object.ButtonPressed == TempValue1
243
TempValue0++
244
end if
245
DrawSprite(TempValue0)
246
end sub
247
248
249
sub ObjectStartup
250
LoadSpriteSheet("DAGarden/Objects.gif")
251
252
SpriteFrame(-32, -16, 63, 31, 146, 577) // #0 - Zoom Out
253
SpriteFrame(-32, -16, 63, 31, 146, 609) // #1 - Zoom Out Highlight
254
SpriteFrame(-32, -16, 63, 31, 210, 577) // #2 - Zoom In
255
SpriteFrame(-32, -16, 63, 31, 210, 609) // #3 - Zoom In Highlight
256
SpriteFrame(-32, -16, 63, 31, 274, 577) // #4 - Rotation Right
257
SpriteFrame(-32, -16, 63, 31, 274, 609) // #5 - Rotation Right Highlight
258
SpriteFrame(-32, -16, 63, 31, 338, 577) // #6 - Rotation Left
259
SpriteFrame(-32, -16, 63, 31, 338, 609) // #7 - Rotation Left Highlight
260
SpriteFrame(-32, -16, 63, 31, 210, 641) // #8 - Prior Theme
261
SpriteFrame(-32, -16, 63, 31, 210, 673) // #9 - Prior Theme Highlight
262
SpriteFrame(-32, -16, 63, 31, 274, 641) // #10 - Play
263
SpriteFrame(-32, -16, 63, 31, 274, 673) // #11 - Play Highlight
264
SpriteFrame(-32, -16, 63, 31, 338, 641) // #12 - Next Theme
265
SpriteFrame(-32, -16, 63, 31, 338, 673) // #13 - Next Theme Highlight
266
SpriteFrame(-32, -16, 63, 31, 402, 641) // #14 - Music Toggle
267
SpriteFrame(-32, -16, 63, 31, 402, 673) // #15 - Music Toggle Highlight
268
SpriteFrame(-32, -16, 63, 31, 402, 577) // #16 - Exit
269
SpriteFrame(-32, -16, 63, 31, 402, 609) // #17 - Exit Highlight
270
end sub
271
272
273
// ========================
274
// Editor Subs
275
// ========================
276
277
sub RSDKEdit
278
if Editor.ReturnVariable == true
279
switch Editor.VariableID
280
case EDIT_VAR_PROPVAL // Property Value
281
CheckResult = Object.PropertyValue
282
break
283
case 0 // ButtonID
284
CheckResult = Object.PropertyValue
285
break
286
end switch
287
else
288
switch Editor.VariableID
289
case EDIT_VAR_PROPVAL // Property Value
290
Object.PropertyValue = Editor.VariableValue
291
break
292
case 0 // ButtonID
293
Object.PropertyValue = Editor.VariableValue
294
break
295
end switch
296
end if
297
end sub
298
299
300
sub RSDKDraw
301
TempValue0 = Object.ButtonID
302
TempValue0 <<= 1
303
DrawSprite(TempValue0)
304
end sub
305
306
307
sub RSDKLoad
308
LoadSpriteSheet("DAGarden/Objects.gif")
309
SpriteFrame(-32, -16, 63, 31, 146, 577) // #0 - Zoom Out
310
SpriteFrame(-32, -16, 63, 31, 146, 609) // #1 - Zoom Out Highlight
311
SpriteFrame(-32, -16, 63, 31, 210, 577) // #2 - Zoom In
312
SpriteFrame(-32, -16, 63, 31, 210, 609) // #3 - Zoom In Highlight
313
SpriteFrame(-32, -16, 63, 31, 274, 577) // #4 - Rotate Right
314
SpriteFrame(-32, -16, 63, 31, 274, 609) // #5 - Rotate Right Highlight
315
SpriteFrame(-32, -16, 63, 31, 338, 577) // #6 - Rotate Left
316
SpriteFrame(-32, -16, 63, 31, 338, 609) // #7 - Rotate Left Highlight
317
SpriteFrame(-32, -16, 63, 31, 210, 641) // #8 - Previous Track
318
SpriteFrame(-32, -16, 63, 31, 210, 673) // #9 - Previous Track Highlight
319
SpriteFrame(-32, -16, 63, 31, 274, 641) // #10 - Play Track
320
SpriteFrame(-32, -16, 63, 31, 274, 673) // #11 - Play Track Highlight
321
SpriteFrame(-32, -16, 63, 31, 338, 641) // #12 - Next Track
322
SpriteFrame(-32, -16, 63, 31, 338, 673) // #13 - Next Track Highlight
323
SpriteFrame(-32, -16, 63, 31, 402, 641) // #14 - Music Toggle
324
SpriteFrame(-32, -16, 63, 31, 402, 673) // #15 - Music Toggle Highlight
325
SpriteFrame(-32, -16, 63, 31, 402, 577) // #16 - Exit
326
SpriteFrame(-32, -16, 63, 31, 402, 609) // #17 - Exit Highlight
327
328
AddEditorVariable("ButtonID")
329
SetActiveVariable("ButtonID")
330
AddEnumVariable("Zoom Out", 0)
331
AddEnumVariable("Zoom In", 1)
332
AddEnumVariable("Rotate Right", 2)
333
AddEnumVariable("Rotate Left", 3)
334
AddEnumVariable("Previous Track", 4)
335
AddEnumVariable("Play Track ", 5)
336
AddEnumVariable("Next Track", 6)
337
AddEnumVariable("Music Toggle", 7)
338
AddEnumVariable("Exit", 8)
339
end sub
340
341