Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/Menu/OptionsMenuC.txt
1319 views
1
//------------Sonic CD Options Menu Console 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
#alias Object.Value1 : Object.CurrentSelection
8
#alias Object.Value3 : Object.BGMDecreaseTimer
9
#alias Object.Value4 : Object.BGMIncreaseTimer
10
#alias Object.Value5 : Object.SFXDecreaseTimer
11
#alias Object.Value6 : Object.SFXIncreaseTimer
12
13
//Object[+ArrayPos0] can be the BlankObjects 63, 64, 65 and 66. Depending of the CurrentSelection value
14
#alias Object[+ArrayPos0].Value2 : Object.FlickerText
15
16
//Object[+4] is Empty, only used to set the Maximum amount of options for the controls
17
#alias Object[+4].Value1 : Object.OptionCount
18
19
//Object[33] is MenuHeading
20
#alias Object[33].State : MenuHeading.State
21
#alias Object[33].PropertyValue : MenuHeading.Header
22
23
//Object[-1] is MenuWindow
24
#alias Object[-1].State : MenuWindow.State
25
26
// States
27
#alias 0 : OPTIONS_SETUP
28
#alias 1 : OPTIONS_CONTROLS
29
#alias 2 : OPTIONS_SELECTED
30
#alias 3 : OPTIONS_STAGE_LOAD
31
#alias 4 : OPTIONS_SETTINGS_SETUP
32
#alias 5 : OPTIONS_SETTINGS_POPIN
33
#alias 6 : OPTIONS_SETTINGS_CONTROLS
34
#alias 7 : OPTIONS_UNUSED
35
#alias 8 : OPTIONS_UNUSED2
36
#alias 9 : OPTIONS_EXIT_SETTINGS
37
#alias 10 : OPTIONS_LEAVE_SUBMENU
38
#alias 11 : OPTIONS_EXIT
39
#alias 12 : OPTIONS_ENTER_ABOUT_MENU
40
#alias 13 : OPTIONS_ENTER_ABOUTMENU
41
#alias 14 : OPTIONS_ABOUTMENU_CONTROLS
42
#alias 15 : OPTIONS_EXIT_ABOUTMENU
43
44
// Menu Window States
45
#alias 3 : MENUWINDOW_SHRINK
46
47
// Menu Button States
48
#alias 1 : MENUBUTTON_BUTTONS_IN
49
50
// Menu Heading States
51
#alias 1 : MENUHEADING_LEAVE_SCREEN
52
53
// Menu Heading Property Values
54
#alias 5 : MAINMENU_HEADER
55
56
// Ink Effects
57
#alias 2 : INK_ALPHA
58
59
// Global SFX
60
#alias 23 : SFX_G_MENUBUTTON
61
#alias 27 : SFX_G_SELECT
62
63
// Stage SFX
64
#alias 1 : SFX_S_BACKBUTTON
65
66
// Languages
67
#alias 0 : LANG_ENGLISH
68
#alias 1 : LANG_FRENCH
69
#alias 2 : LANG_ITALIAN
70
#alias 3 : LANG_DEUTSCH
71
#alias 4 : LANG_SPANISH
72
#alias 5 : LANG_JAPANESE
73
74
75
// Engine & Callbacks
76
#alias 9 : CALLBACK_HOW_TO_PLAY
77
#alias 10 : CALLBACK_CONTROLS
78
#alias 12 : CALLBACK_SETTINGS
79
#alias 15 : CALLBACK_STAFF_CREDITS
80
81
// SaveRAM Values
82
// 32 : SavedSettings
83
// 33 : BGM
84
// 34 : SFX
85
// 35 : Control Type
86
87
#function OptionsMenuC_DrawOptions
88
89
function OptionsMenuC_DrawOptions
90
switch Object.FlickerText
91
case false
92
if ArrayPos0 == Object.CurrentSelection
93
DrawSpriteScreenFX(9, FX_INK, Object.XPos, Object.YPos)
94
TempValue0 = ArrayPos0
95
TempValue0 += 14
96
DrawSpriteScreenFX(TempValue0, FX_INK, Object.XPos, Object.YPos)
97
else
98
TempValue0 = ArrayPos0
99
TempValue0 += 10
100
DrawSpriteScreenFX(TempValue0, FX_INK, Object.XPos, Object.YPos)
101
end if
102
break
103
case true
104
TempValue0 = Object.Timer
105
TempValue0 &= 3
106
TempValue0 >>= 1
107
DrawSpriteScreenFX(9, FX_INK, Object.XPos, Object.YPos)
108
if TempValue0 == 0
109
TempValue0 = ArrayPos0
110
TempValue0 += 14
111
DrawSpriteScreenFX(TempValue0, FX_INK, Object.XPos, Object.YPos)
112
end if
113
break
114
end switch
115
116
DrawSpriteScreenFX(8, FX_INK, Object.XPos, Object.YPos)
117
DrawSpriteScreenFX(ArrayPos0, FX_INK, Object.XPos, Object.YPos)
118
end function
119
120
121
sub ObjectMain
122
switch Object.State
123
case OPTIONS_SETUP
124
125
#platform: Mobile
126
Object.CurrentSelection = -1
127
#endplatform
128
129
Object.XPos = Screen.CenterX
130
Object.XPos -= 126
131
if Object.Timer < 256
132
Object.Alpha = Object.Timer
133
Object.Timer += 6
134
else
135
Object.Timer = 0
136
Object.Alpha = 255
137
Object.State++
138
end if
139
break
140
141
case OPTIONS_CONTROLS
142
if KeyPress[0].Up == true
143
Object.CurrentSelection--
144
if Object.CurrentSelection < 0
145
Object.CurrentSelection = 3
146
end if
147
PlaySfx(SFX_G_MENUBUTTON, false)
148
end if
149
150
if KeyPress[0].Down == true
151
Object.CurrentSelection++
152
if Object.CurrentSelection > 3
153
Object.CurrentSelection = 0
154
end if
155
PlaySfx(SFX_G_MENUBUTTON, false)
156
end if
157
158
CheckResult = false
159
if KeyPress[0].Start == true
160
CheckResult = true
161
end if
162
163
if KeyPress[0].ButtonA == true
164
CheckResult = true
165
end if
166
167
if CheckResult == true
168
if Object.CurrentSelection < 4
169
ArrayPos0 = Object.CurrentSelection
170
Object.FlickerText = 1
171
Object.State++
172
PlaySfx(SFX_G_SELECT, false)
173
switch Object.CurrentSelection
174
case 0
175
case 3
176
Music.Volume = 0
177
break
178
179
end switch
180
end if
181
end if
182
183
if KeyPress[0].ButtonB == true
184
Object.Timer = 248
185
Object.State = OPTIONS_EXIT
186
PlayStageSfx(SFX_S_BACKBUTTON, false)
187
end if
188
break
189
190
case OPTIONS_SELECTED
191
if Object.Timer < 30
192
Object.Timer++
193
else
194
Object.Timer = 0
195
ArrayPos0 = Object.CurrentSelection
196
Object.FlickerText = 0
197
Object.State = OPTIONS_STAGE_LOAD
198
end if
199
break
200
201
case OPTIONS_STAGE_LOAD
202
if Object.Timer < 320
203
Object.Timer += 8
204
else
205
Object.State = OPTIONS_UNUSED2
206
switch Object.CurrentSelection
207
case 0
208
EngineCallback(CALLBACK_HOW_TO_PLAY)
209
break
210
case 1
211
EngineCallback(CALLBACK_CONTROLS)
212
break
213
case 2
214
EngineCallback(CALLBACK_SETTINGS)
215
break
216
case 3
217
EngineCallback(CALLBACK_STAFF_CREDITS)
218
break
219
end switch
220
end if
221
222
TempValue0 = Object.Timer
223
if TempValue0 > 255
224
TempValue0 = 255
225
end if
226
SetScreenFade(0, 0, 0, TempValue0)
227
break
228
229
case OPTIONS_SETTINGS_SETUP
230
TempValue0 = Screen.CenterY
231
TempValue0 -= 87
232
if Object.YPos > TempValue0
233
Object.YPos -= 8
234
if Object.YPos < TempValue0
235
Object.YPos = TempValue0
236
end if
237
else
238
Object.State++
239
Object.Alpha = 0
240
Object.OptionCount = 0
241
242
#platform: Mobile
243
ArrayPos0 = Object.CurrentSelection
244
Object.OptionCount = -1
245
#endplatform
246
247
end if
248
break
249
250
case OPTIONS_SETTINGS_POPIN
251
if Object.Timer < 256
252
Object.Alpha = Object.Timer
253
Object.Timer += 8
254
else
255
Object.Timer = 0
256
Object.Alpha = 255
257
Object.State++
258
end if
259
break
260
261
case OPTIONS_SETTINGS_CONTROLS
262
ArrayPos0 = Object.CurrentSelection
263
#platform: Standard
264
if KeyPress[0].Up == true
265
Object.OptionCount--
266
PlaySfx(SFX_G_MENUBUTTON, false)
267
if Object.OptionCount < 0
268
Object.OptionCount = 2
269
end if
270
end if
271
272
if KeyPress[0].Down == true
273
Object.OptionCount++
274
PlaySfx(SFX_G_MENUBUTTON, false)
275
if Object.OptionCount > 2
276
Object.OptionCount = 0
277
end if
278
end if
279
280
switch Object.OptionCount
281
case 0 // BGM
282
if KeyPress[0].Left == true
283
Object.BGMDecreaseTimer = 10
284
SaveRAM[33] -= 10
285
if SaveRAM[33] < 0
286
SaveRAM[33] = 0
287
Engine.BGMVolume = SaveRAM[33]
288
else
289
Engine.BGMVolume = SaveRAM[33]
290
PlaySfx(SFX_G_MENUBUTTON, false)
291
end if
292
end if
293
294
if KeyPress[0].Right == true
295
Object.BGMIncreaseTimer = 10
296
SaveRAM[33] += 10
297
if SaveRAM[33] > 100
298
SaveRAM[33] = 100
299
Engine.BGMVolume = SaveRAM[33]
300
else
301
Engine.BGMVolume = SaveRAM[33]
302
PlaySfx(SFX_G_MENUBUTTON, false)
303
end if
304
end if
305
break
306
307
case 1 // SFX
308
if KeyPress[0].Left == true
309
Object.SFXDecreaseTimer = 10
310
SaveRAM[34] -= 10
311
if SaveRAM[34] < 0
312
SaveRAM[34] = 0
313
Engine.SFXVolume = SaveRAM[34]
314
else
315
PlaySfx(SFX_G_MENUBUTTON, false)
316
Engine.SFXVolume = SaveRAM[34]
317
end if
318
end if
319
320
if KeyPress[0].Right == true
321
Object.SFXIncreaseTimer = 10
322
SaveRAM[34] += 10
323
if SaveRAM[34] > 100
324
SaveRAM[34] = 100
325
else
326
PlaySfx(SFX_G_MENUBUTTON, false)
327
Engine.SFXVolume = SaveRAM[34]
328
end if
329
end if
330
break
331
332
case 2 // Control Type
333
if KeyPress[0].Left == true
334
SaveRAM[35]--
335
if SaveRAM[35] < 0
336
SaveRAM[35] = 1
337
end if
338
PlaySfx(SFX_G_MENUBUTTON, false)
339
end if
340
341
if KeyPress[0].Right == true
342
SaveRAM[35]++
343
if SaveRAM[35] > 1
344
SaveRAM[35] = 0
345
end if
346
PlaySfx(SFX_G_MENUBUTTON, false)
347
end if
348
break
349
350
end switch
351
#endplatform
352
353
if KeyPress[0].ButtonB == true
354
Object.State = OPTIONS_EXIT_SETTINGS
355
Object.Timer = 248
356
Options.OriginalControls = SaveRAM[35]
357
SaveRAM[32] = true
358
WriteSaveRAM()
359
PlayStageSfx(SFX_S_BACKBUTTON, false)
360
end if
361
break
362
363
case OPTIONS_UNUSED
364
if Object.Timer < 30
365
Object.Timer++
366
else
367
Object.Timer = 0
368
Object.State++
369
end if
370
break
371
372
case OPTIONS_UNUSED2
373
Music.Volume = 100
374
if Object.Timer > 0
375
Object.Timer -= 8
376
else
377
Object.State = OPTIONS_CONTROLS
378
end if
379
380
TempValue0 = Object.Timer
381
if TempValue0 > 255
382
TempValue0 = 255
383
end if
384
SetScreenFade(0, 0, 0, TempValue0)
385
break
386
387
case OPTIONS_EXIT_SETTINGS
388
if Object.Timer > 0
389
Object.Alpha = Object.Timer
390
Object.Timer -= 8
391
else
392
Object.Alpha = 0
393
Object.State++
394
end if
395
break
396
397
case OPTIONS_LEAVE_SUBMENU
398
TempValue0 = Object.CurrentSelection
399
TempValue0 *= 40
400
TempValue0 += Screen.CenterY
401
TempValue0 -= 87
402
if Object.YPos < TempValue0
403
Object.YPos += 8
404
if Object.YPos > TempValue0
405
Object.YPos = TempValue0
406
end if
407
Object.Alpha = 0
408
else
409
#platform: Mobile
410
Object.CurrentSelection = -1
411
#endplatform
412
Object.State = OPTIONS_CONTROLS
413
Object.Alpha = 255
414
end if
415
break
416
417
case OPTIONS_EXIT
418
if Object.Timer > 0
419
Object.Alpha = Object.Timer
420
Object.Timer -= 8
421
else
422
Object.Type = TypeName[Blank Object]
423
MenuWindow.State = MENUWINDOW_SHRINK
424
//All of this is MenuButton Objects
425
Object[34].State = MENUBUTTON_BUTTONS_IN
426
Object[35].State = MENUBUTTON_BUTTONS_IN
427
Object[36].State = MENUBUTTON_BUTTONS_IN
428
Object[37].State = MENUBUTTON_BUTTONS_IN
429
Object[38].State = MENUBUTTON_BUTTONS_IN
430
Object[39].State = MENUBUTTON_BUTTONS_IN
431
Object[40].State = MENUBUTTON_BUTTONS_IN
432
Object[41].State = MENUBUTTON_BUTTONS_IN
433
Object[42].State = MENUBUTTON_BUTTONS_IN
434
//End
435
MenuHeading.State = MENUHEADING_LEAVE_SCREEN
436
MenuHeading.Header = MAINMENU_HEADER
437
end if
438
break
439
440
case OPTIONS_ENTER_ABOUT_MENU
441
TempValue0 = Screen.CenterY
442
TempValue0 -= 87
443
if Object.YPos > TempValue0
444
Object.YPos -= 8
445
if Object.YPos < TempValue0
446
Object.YPos = TempValue0
447
end if
448
else
449
TempValue0 = Object.EntityNo
450
TempValue0 += 10
451
ResetObjectEntity(TempValue0, TypeName[About Menu], 0, 0, 0)
452
SetupMenu(MENU_1, 0, 3, 1)
453
GetVersionNumber(MENU_1, 1)
454
Object[+10].InkEffect = INK_ALPHA
455
Object.State++
456
Object.Alpha = 0
457
Object.OptionCount = 0
458
#platform: Mobile
459
ArrayPos0 = Object.CurrentSelection
460
Object.OptionCount = -1
461
#endplatform
462
end if
463
464
break
465
466
case OPTIONS_ENTER_ABOUTMENU
467
if Object.Timer < 256
468
Object.Alpha = Object.Timer
469
Object.Timer += 8
470
else
471
Object.Timer = 0
472
Object.Alpha = 255
473
Object.State++
474
end if
475
break
476
477
case OPTIONS_ABOUTMENU_CONTROLS
478
#platform: Mobile
479
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
480
TempValue3 = CheckResult
481
TempValue0 = Screen.XSize
482
TempValue0 -= 96
483
CheckTouchRect(TempValue0, 192, Screen.XSize, Screen.YSize)
484
if CheckResult > -1
485
Object.OptionCount = 9
486
else
487
if TempValue3 < 0
488
if Object.OptionCount == 9
489
KeyPress[0].ButtonB = true
490
end if
491
else
492
if Object.OptionCount == 9
493
Object.OptionCount = -1
494
end if
495
end if
496
end if
497
#endplatform
498
499
if KeyPress[0].ButtonB == true
500
Object.State = OPTIONS_EXIT_ABOUTMENU
501
Object.Timer = 248
502
PlayStageSfx(SFX_S_BACKBUTTON, false)
503
end if
504
break
505
506
case OPTIONS_EXIT_ABOUTMENU
507
if Object.Timer > 0
508
Object.Alpha = Object.Timer
509
Object.Timer -= 8
510
else
511
Object.Alpha = 0
512
Object.State = OPTIONS_LEAVE_SUBMENU
513
Object[+10].Type = TypeName[Blank Object]
514
end if
515
break
516
517
end switch
518
end sub
519
520
521
sub ObjectDraw
522
switch Object.State
523
case OPTIONS_SETUP
524
case OPTIONS_CONTROLS
525
case OPTIONS_SELECTED
526
case OPTIONS_STAGE_LOAD
527
case OPTIONS_UNUSED2
528
case OPTIONS_EXIT
529
Object.YPos = Screen.CenterY
530
Object.YPos -= 87
531
ArrayPos0 = 0
532
CallFunction(OptionsMenuC_DrawOptions)
533
Object.YPos += 40
534
ArrayPos0++
535
CallFunction(OptionsMenuC_DrawOptions)
536
Object.YPos += 40
537
ArrayPos0++
538
CallFunction(OptionsMenuC_DrawOptions)
539
Object.YPos += 40
540
ArrayPos0++
541
CallFunction(OptionsMenuC_DrawOptions)
542
break
543
case OPTIONS_SETTINGS_SETUP
544
case OPTIONS_ENTER_ABOUT_MENU
545
ArrayPos0 = Object.CurrentSelection
546
CallFunction(OptionsMenuC_DrawOptions)
547
break
548
case OPTIONS_SETTINGS_POPIN
549
case OPTIONS_SETTINGS_CONTROLS
550
case OPTIONS_EXIT_SETTINGS
551
case OPTIONS_LEAVE_SUBMENU
552
ArrayPos0 = Object.CurrentSelection
553
TempValue0 = Screen.CenterX
554
TempValue0 += 15
555
if Object.OptionCount == 7
556
DrawSpriteScreenFX(40, FX_INK, TempValue0, 134)
557
else
558
DrawSpriteScreenFX(29, FX_INK, TempValue0, 134)
559
end if
560
TempValue0 += 52
561
if Object.OptionCount == 8
562
DrawSpriteScreenFX(41, FX_INK, TempValue0, 134)
563
else
564
DrawSpriteScreenFX(30, FX_INK, TempValue0, 134)
565
end if
566
TempValue0 = Screen.CenterX
567
TempValue0 -= 117
568
#platform: Standard
569
switch Object.OptionCount
570
case 0
571
DrawSpriteScreenFX(32, FX_INK, TempValue0, 81)
572
DrawSpriteScreenFX(33, FX_INK, TempValue0, 110)
573
DrawSpriteScreenFX(35, FX_INK, TempValue0, 151)
574
break
575
case 1
576
DrawSpriteScreenFX(31, FX_INK, TempValue0, 81)
577
DrawSpriteScreenFX(34, FX_INK, TempValue0, 110)
578
DrawSpriteScreenFX(35, FX_INK, TempValue0, 151)
579
break
580
case 2
581
DrawSpriteScreenFX(31, FX_INK, TempValue0, 81)
582
DrawSpriteScreenFX(33, FX_INK, TempValue0, 110)
583
DrawSpriteScreenFX(36, FX_INK, TempValue0, 151)
584
break
585
end switch
586
#endplatform
587
588
#platform: Mobile
589
DrawSpriteScreenFX(31, FX_INK, TempValue0, 81)
590
DrawSpriteScreenFX(33, FX_INK, TempValue0, 110)
591
DrawSpriteScreenFX(35, FX_INK, TempValue0, 151)
592
#endplatform
593
if SaveRAM[35] == 0
594
DrawSpriteScreenFX(37, FX_INK, TempValue0, 169)
595
TempValue0 += 132
596
DrawSpriteScreenFX(39, FX_INK, TempValue0, 134)
597
else
598
DrawSpriteScreenFX(38, FX_INK, TempValue0, 169)
599
TempValue0 += 184
600
DrawSpriteScreenFX(39, FX_INK, TempValue0, 134)
601
end if
602
603
TempValue1 = Screen.CenterX
604
TempValue1 += 23
605
if Object.BGMDecreaseTimer > 0
606
Object.BGMDecreaseTimer--
607
DrawSpriteScreenFX(5, FX_INK, TempValue1, 76)
608
else
609
DrawSpriteScreenFX(4, FX_INK, TempValue1, 76)
610
end if
611
612
TempValue1 += 66
613
if Object.BGMIncreaseTimer > 0
614
Object.BGMIncreaseTimer--
615
DrawSpriteScreenFX(7, FX_INK, TempValue1, 76)
616
else
617
DrawSpriteScreenFX(6, FX_INK, TempValue1, 76)
618
end if
619
620
TempValue1 -= 42
621
DrawSpriteScreenFX(18, FX_INK, TempValue1, 76)
622
623
TempValue0 = SaveRAM[33]
624
TempValue0 /= 10
625
TempValue0 += 18
626
DrawSpriteScreenFX(TempValue0, FX_INK, TempValue1, 76)
627
628
TempValue1 = Screen.CenterX
629
TempValue1 += 23
630
if Object.SFXDecreaseTimer > 0
631
Object.SFXDecreaseTimer--
632
DrawSpriteScreenFX(5, FX_INK, TempValue1, 105)
633
else
634
DrawSpriteScreenFX(4, FX_INK, TempValue1, 105)
635
end if
636
637
TempValue1 += 66
638
if Object.SFXIncreaseTimer > 0
639
Object.SFXIncreaseTimer--
640
DrawSpriteScreenFX(7, FX_INK, TempValue1, 105)
641
else
642
DrawSpriteScreenFX(6, FX_INK, TempValue1, 105)
643
end if
644
645
TempValue1 -= 42
646
DrawSpriteScreenFX(18, FX_INK, TempValue1, 105)
647
648
TempValue0 = SaveRAM[34]
649
TempValue0 /= 10
650
TempValue0 += 18
651
DrawSpriteScreenFX(TempValue0, FX_INK, TempValue1, 105)
652
653
Object.Alpha = 255
654
CallFunction(OptionsMenuC_DrawOptions)
655
break
656
657
case OPTIONS_ENTER_ABOUTMENU
658
case OPTIONS_ABOUTMENU_CONTROLS
659
case OPTIONS_EXIT_ABOUTMENU
660
ArrayPos0 = Object.CurrentSelection
661
Object.Alpha = 255
662
CallFunction(OptionsMenuC_DrawOptions)
663
break
664
end switch
665
end sub
666
667
668
sub ObjectStartup
669
switch Engine.Language
670
case LANG_ENGLISH
671
LoadSpriteSheet("Menu/MenuGfx2_EN.gif")
672
break
673
case LANG_FRENCH
674
LoadSpriteSheet("Menu/MenuGfx2_FR.gif")
675
break
676
case LANG_ITALIAN
677
LoadSpriteSheet("Menu/MenuGfx2_IT.gif")
678
break
679
case LANG_DEUTSCH
680
LoadSpriteSheet("Menu/MenuGfx2_DE.gif")
681
break
682
case LANG_SPANISH
683
LoadSpriteSheet("Menu/MenuGfx2_ES.gif")
684
break
685
case LANG_JAPANESE
686
LoadSpriteSheet("Menu/MenuGfx2_JP.gif")
687
break
688
end switch
689
690
if SaveRAM[32] == false
691
SaveRAM[33] = 100
692
SaveRAM[34] = 100
693
SaveRAM[35] = 0
694
end if
695
Options.OriginalControls = SaveRAM[35]
696
697
SpriteFrame(4, 2, 32, 32, 479, 34) // #0 - Gear
698
SpriteFrame(4, 2, 32, 32, 479, 34) // #1 - Gear Again
699
SpriteFrame(4, 2, 32, 32, 479, 34) // #2 - Why is this a Gear again
700
SpriteFrame(4, 2, 32, 32, 479, 34) // #3 - Please Stop.
701
SpriteFrame(0, 0, 20, 20, 168, 366) // #4 - Decrease button
702
SpriteFrame(0, 0, 20, 20, 168, 387) // #5 - Decrease button Highlight
703
SpriteFrame(0, 0, 20, 20, 189, 366) // #6 - Increase button
704
SpriteFrame(0, 0, 20, 20, 189, 387) // #7 - Increase button Highlight
705
SpriteFrame(45, 12, 13, 13, 488, 1) // #8 - Triangle detail
706
SpriteFrame(0, 0, 250, 37, 259, 421) // #9 - Selection Border
707
SpriteFrame(64, 12, 128, 16, 1, 530) // #10 - How to Play
708
SpriteFrame(64, 12, 128, 16, 1, 290) // #11 - Controls
709
SpriteFrame(64, 12, 128, 16, 1, 205) // #12 - Settings
710
SpriteFrame(64, 12, 128, 16, 1, 222) // #13 - Staff Credits
711
SpriteFrame(64, 12, 128, 16, 130, 530) // #14 - How to Play Highlight
712
SpriteFrame(64, 12, 128, 16, 130, 290) // #15 - Controls Highlight
713
SpriteFrame(64, 12, 128, 16, 130, 205) // #15 - Settings Highlight
714
SpriteFrame(64, 12, 128, 16, 130, 222) // #16 - Staff Credits Highlight
715
SpriteFrame(0, 0, 38, 20, 171, 324) // #18 - Minimal Volume
716
SpriteFrame(0, 0, 4, 20, 171, 345) // #19 - Volume Bar 1
717
SpriteFrame(0, 0, 8, 20, 171, 345) // #20 - Volume Bar 2
718
SpriteFrame(0, 0, 12, 20, 171, 345) // #21 - Volume Bar 3
719
SpriteFrame(0, 0, 16, 20, 171, 345) // #22 - Volume Bar 4
720
SpriteFrame(0, 0, 20, 20, 171, 345) // #23 - Volume Bar 5
721
SpriteFrame(0, 0, 24, 20, 171, 345) // #24 - Volume Bar 6
722
SpriteFrame(0, 0, 28, 20, 171, 345) // #25 - Volume Bar 7
723
SpriteFrame(0, 0, 32, 20, 171, 345) // #26 - Volume Bar 8
724
SpriteFrame(0, 0, 36, 20, 171, 345) // #27 - Volume Bar 9
725
SpriteFrame(0, 0, 38, 20, 171, 345) // #28 - Volume Bar 10
726
SpriteFrame(0, 0, 48, 48, 210, 324) // #29 - S2 Spin Dash
727
SpriteFrame(0, 0, 48, 48, 210, 373) // #30 - CD Spin Dash
728
SpriteFrame(0, 0, 128, 16, 1, 256) // #31 - Music
729
SpriteFrame(0, 0, 128, 16, 130, 256) // #32 - Music Highlight
730
SpriteFrame(0, 0, 128, 16, 1, 273) // #32 - SFX
731
SpriteFrame(0, 0, 128, 16, 130, 273) // #33 - SFX Highlight
732
SpriteFrame(0, 0, 128, 16, 1, 307) // #34 - Spin Dash
733
SpriteFrame(0, 0, 128, 16, 130, 307) // #35 - Spin Dash Highlight
734
SpriteFrame(0, 0, 88, 8, 259, 44) // #36 - Genesis
735
SpriteFrame(0, 0, 88, 8, 259, 35) // #37 - Original
736
SpriteFrame(0, 0, 48, 48, 405, 88) // #38 - Icon Border
737
SpriteFrame(0, 0, 48, 48, 119, 324) // #39 - S2 Spin Dash Highlight
738
SpriteFrame(0, 0, 48, 48, 119, 373) // #40 - CD Spin Dash Highlight
739
end sub
740
741
742
// ========================
743
// Editor Subs
744
// ========================
745
746
sub RSDKDraw
747
DrawSprite(0)
748
end sub
749
750
751
sub RSDKLoad
752
LoadSpriteSheet("Menu/MenuGfx2_EN.gif")
753
SpriteFrame(16, 0, 90, 30, 71, 677) // Options
754
755
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
756
end sub
757
758