Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/Menu/AboutMenuF.txt
1319 views
1
//------------Sonic CD About Menu Forever Script--------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
//---This Object is normally only used by Mobile Data files---//
5
6
// Also, this object is exactly the same as the normal AboutMenu, only difference being the added facebook button
7
8
// Aliases
9
#alias Object.Value1 : Object.ButtonSelected
10
#alias Object[-10].Alpha : OptionsMenuH.Alpha //a.k.a the alpha value from the menu that called this
11
12
// States
13
#alias 0 : ABOUTMENU_CONTROLS
14
#alias 1 : ABOUTMENU_OPTION_SELECTED
15
16
// Global SFX
17
#alias 23 : SFX_G_MENUBUTTON
18
#alias 27 : SFX_G_SELECT
19
20
// Engine States & Callbacks
21
#alias 9 : CALLBACK_TERMS_SELECTED
22
#alias 10 : CALLBACK_PRIVACY_SELECTED
23
#alias 17 : CALLBACK_FACEBOOK_LOG
24
25
// Text Info type
26
#alias 0 : TEXTINFO_TEXTDATA
27
#alias 1 : TEXTINFO_TEXTSIZE
28
29
30
sub ObjectMain
31
Object.Alpha = OptionsMenuH.Alpha
32
if Object.Alpha > 254
33
if 2 == 1 // This dummy-looking origins code was added to ignore inputs
34
switch Object.State
35
case ABOUTMENU_CONTROLS
36
if Options.PhysicalControls == true
37
if KeyPress[0].Up == true
38
Object.ButtonSelected--
39
if Object.ButtonSelected < 0
40
Object.ButtonSelected = 2
41
end if
42
PlaySfx(SFX_G_MENUBUTTON, false)
43
end if
44
45
if KeyPress[0].Down == true
46
Object.ButtonSelected++
47
if Object.ButtonSelected > 2
48
Object.ButtonSelected = 0
49
end if
50
PlaySfx(SFX_G_MENUBUTTON, false)
51
end if
52
53
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize) //Touch input reset
54
if CheckResult > -1
55
Options.PhysicalControls = false
56
Object.ButtonSelected = -1
57
end if
58
else
59
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize) //Touch input reset
60
TempValue3 = CheckResult
61
62
TempValue0 = Screen.CenterX
63
TempValue0 += 36
64
TempValue1 = Screen.CenterX
65
TempValue1 += 110
66
CheckTouchRect(TempValue0, 108, TempValue1, 134) //Terms button press
67
if CheckResult > -1
68
Object.ButtonSelected = 0
69
else
70
if TempValue3 < 0
71
if Object.ButtonSelected == 0
72
KeyPress[0].Start = true
73
end if
74
else
75
if Object.ButtonSelected == 0
76
Object.ButtonSelected = -1
77
end if
78
end if
79
end if
80
81
TempValue0 = Screen.CenterX
82
TempValue0 += 36
83
TempValue1 = Screen.CenterX
84
TempValue1 += 110
85
CheckTouchRect(TempValue0, 134, TempValue1, 160) //Privacy button press
86
if CheckResult > -1
87
Object.ButtonSelected = 1
88
else
89
if TempValue3 < 0
90
if Object.ButtonSelected == 1
91
KeyPress[0].Start = true
92
end if
93
else
94
if Object.ButtonSelected == 1
95
Object.ButtonSelected = -1
96
end if
97
end if
98
end if
99
100
TempValue0 = Screen.CenterX
101
TempValue0 += 36
102
TempValue1 = Screen.CenterX
103
TempValue1 += 110
104
CheckTouchRect(TempValue0, 160, TempValue1, 185) //Facebook button press
105
if CheckResult > -1
106
Object.ButtonSelected = 2
107
else
108
if TempValue3 < 0
109
if Object.ButtonSelected == 2
110
KeyPress[0].Start = true
111
end if
112
else
113
if Object.ButtonSelected == 2
114
Object.ButtonSelected = -1
115
end if
116
end if
117
end if
118
119
CallFunction(MenuHeading_CheckTouchBack)
120
if KeyPress[0].Up == true
121
Object.ButtonSelected = 1
122
Options.PhysicalControls = true
123
end if
124
125
if KeyPress[0].Down == true
126
Object.ButtonSelected = 0
127
Options.PhysicalControls = true
128
end if
129
130
end if
131
132
CheckResult = false
133
if Object.ButtonSelected > -1
134
if KeyPress[0].Start == true
135
CheckResult = true
136
end if
137
138
if KeyPress[0].ButtonA == true
139
CheckResult = true
140
end if
141
end if
142
143
if CheckResult == true
144
PlaySfx(SFX_G_SELECT, false)
145
Object.State++
146
end if
147
break
148
149
case ABOUTMENU_OPTION_SELECTED
150
if Object.AnimationTimer < 30
151
Object.AnimationTimer++
152
else
153
Object.AnimationTimer = 0
154
Object.State = ABOUTMENU_CONTROLS
155
switch Object.ButtonSelected
156
case 0
157
EngineCallback(CALLBACK_TERMS_SELECTED)
158
break
159
160
case 1
161
EngineCallback(CALLBACK_PRIVACY_SELECTED)
162
break
163
164
case 2
165
EngineCallback(CALLBACK_FACEBOOK_LOG)
166
break
167
168
end switch
169
if Options.PhysicalControls == false
170
Object.ButtonSelected = -1
171
end if
172
end if
173
break
174
175
end switch
176
end if
177
else
178
if Options.PhysicalControls == false
179
Object.ButtonSelected = -1
180
end if
181
182
Object.AnimationTimer = 0
183
Object.State = ABOUTMENU_CONTROLS
184
end if
185
end sub
186
187
188
sub ObjectDraw
189
TempValue0 = Screen.CenterX
190
TempValue0 -= 120
191
DrawSpriteScreenFX(0, FX_INK, TempValue0, 72)
192
193
TempValue0 = Screen.CenterX
194
TempValue0 += 72
195
DrawSpriteScreenFX(1, FX_INK, TempValue0, 74)
196
197
TempValue0 = Screen.CenterX
198
TempValue0 += 72
199
if 2 == 1 // This dummy-looking origins code was added to ignore drawing this
200
switch Object.ButtonSelected
201
default
202
DrawSpriteScreenFX(47, FX_INK, TempValue0, 136)
203
DrawSpriteScreenFX(45, FX_INK, TempValue0, 110)
204
DrawSpriteScreenFX(49, FX_INK, TempValue0, 162)
205
if SegaID.LoggedIn == false
206
DrawSpriteScreenFX(51, FX_INK, TempValue0, 162)
207
else
208
DrawSpriteScreenFX(53, FX_INK, TempValue0, 162)
209
end if
210
break
211
212
case 0
213
TempValue2 = Object.AnimationTimer
214
TempValue2 &= 3
215
TempValue2 >>= 1
216
TempValue2 += 44
217
DrawSpriteScreenFX(TempValue2, FX_INK, TempValue0, 110)
218
DrawSpriteScreenFX(47, FX_INK, TempValue0, 136)
219
DrawSpriteScreenFX(49, FX_INK, TempValue0, 162)
220
if SegaID.LoggedIn == false
221
DrawSpriteScreenFX(51, FX_INK, TempValue0, 162)
222
else
223
DrawSpriteScreenFX(53, FX_INK, TempValue0, 162)
224
end if
225
break
226
227
case 1
228
TempValue2 = Object.AnimationTimer
229
TempValue2 &= 3
230
TempValue2 >>= 1
231
TempValue2 += 46
232
DrawSpriteScreenFX(TempValue2, FX_INK, TempValue0, 136)
233
DrawSpriteScreenFX(45, FX_INK, TempValue0, 110)
234
DrawSpriteScreenFX(49, FX_INK, TempValue0, 162)
235
if SegaID.LoggedIn == false
236
DrawSpriteScreenFX(51, FX_INK, TempValue0, 162)
237
else
238
DrawSpriteScreenFX(53, FX_INK, TempValue0, 162)
239
end if
240
break
241
242
case 2
243
TempValue2 = Object.AnimationTimer
244
TempValue2 &= 3
245
TempValue2 >>= 1
246
TempValue2 += 48
247
DrawSpriteScreenFX(TempValue2, FX_INK, TempValue0, 162)
248
if SegaID.LoggedIn == false
249
TempValue2 += 2
250
DrawSpriteScreenFX(TempValue2, FX_INK, TempValue0, 162)
251
else
252
TempValue2 += 4
253
DrawSpriteScreenFX(TempValue2, FX_INK, TempValue0, 162)
254
end if
255
DrawSpriteScreenFX(47, FX_INK, TempValue0, 136)
256
DrawSpriteScreenFX(45, FX_INK, TempValue0, 110)
257
break
258
259
end switch
260
end if
261
262
ArrayPos0 = 0
263
264
GetTextInfo(TempValue1, MENU_1, TEXTINFO_TEXTSIZE, 0, 0)
265
266
TempValue2 = TempValue1
267
TempValue2 <<= 2
268
FlipSign(TempValue2)
269
TempValue2 += Screen.CenterX
270
TempValue2 += 72
271
272
while TempValue1 > 0
273
GetTextInfo(TempValue0, MENU_1, TEXTINFO_TEXTDATA, 0, ArrayPos0) //Gets version numbers
274
switch TempValue0
275
default
276
Object.Frame = 0
277
if TempValue0 > 64
278
if TempValue0 < 91
279
Object.Frame = TempValue0
280
Object.Frame -= 63
281
end if
282
end if
283
if TempValue0 > 96
284
if TempValue0 < 123
285
Object.Frame = TempValue0
286
Object.Frame -= 95
287
end if
288
end if
289
if TempValue0 > 47
290
if TempValue0 < 58
291
Object.Frame = TempValue0
292
Object.Frame -= 18
293
end if
294
end if
295
if Object.Frame > 0
296
DrawSpriteScreenFX(Object.Frame, FX_INK, TempValue2, 92)
297
end if
298
break
299
300
case 38
301
DrawSpriteScreenFX(33, FX_INK, TempValue2, 92)
302
break
303
304
case 39
305
DrawSpriteScreenFX(31, FX_INK, TempValue2, 92)
306
break
307
308
case 44
309
DrawSpriteScreenFX(29, FX_INK, TempValue2, 92)
310
break
311
312
case 46
313
DrawSpriteScreenFX(28, FX_INK, TempValue2, 92)
314
break
315
316
end switch
317
ArrayPos0++
318
TempValue1--
319
TempValue2 += 8
320
loop
321
end sub
322
323
324
sub ObjectStartup
325
LoadSpriteSheet("Menu/MenuGfx1_EN.gif")
326
327
SpriteFrame(0, 0, 132, 113, 154, 235) // #0 - Sonic CD Mini Logo
328
SpriteFrame(-28, 0, 56, 16, 154, 349) // #1 - Version
329
330
TempValue1 = 366
331
while TempValue1 < 417
332
TempValue0 = 154
333
while TempValue0 < 280
334
SpriteFrame(-3, 0, 8, 16, TempValue0, TempValue1) // #2 to #44 - Alphabet and Numbers
335
TempValue0 += 9
336
loop
337
TempValue1 += 17
338
loop
339
340
SpriteFrame(-32, 0, 64, 21, 195, 476) // #45 - Terms Highlight
341
SpriteFrame(-32, 0, 64, 21, 130, 476) // #46 - Terms
342
SpriteFrame(-32, 0, 64, 21, 195, 454) // #47 - Privacy Highlight
343
SpriteFrame(-32, 0, 64, 21, 130, 454) // #48 - Privacy
344
SpriteFrame(-32, 0, 42, 21, 418, 439) // #49 - Facebook Log
345
SpriteFrame(-32, 0, 42, 21, 418, 461) // #50 - Facebook Log Highlight
346
SpriteFrame(10, 0, 22, 21, 464, 395) // #51 - Facebook Log In
347
SpriteFrame(10, 0, 22, 21, 464, 417) // #52 - Facebook Log In Highlight
348
SpriteFrame(10, 0, 22, 21, 464, 439) // #53 - Facebook Log Out
349
SpriteFrame(10, 0, 22, 21, 464, 461) // #54 - Facebook Log Out Highlight
350
end sub
351
352
353
// ========================
354
// Editor Subs
355
// ========================
356
357
sub RSDKDraw
358
DrawSprite(0)
359
end sub
360
361
362
sub RSDKLoad
363
LoadSpriteSheet("Global/Display.gif")
364
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
365
366
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
367
end sub
368
369