Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/Menu/OptionsMenu.txt
1319 views
1
//----------------Sonic CD Options Menu 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
#alias Object.Value7 : Object.TouchDelay
13
14
//Object[+4] is Empty, only used to set the Maximum amount of options for the controls
15
#alias Object[+4].Value1 : Object.OptionCount
16
17
//Object[+ArrayPos0] can be the BlankObjects 63, 64, 65 and 66. Depending of the CurrentSelection value
18
#alias Object[+ArrayPos0].Value2 : Object.FlickerText
19
20
// MenuHeading Aliases
21
#alias Object[33].State : MenuHeading.State
22
#alias Object[33].PropertyValue : MenuHeading.Header
23
24
// MenuWindow Aliases
25
#alias Object[-1].State : MenuWindow.State
26
27
// Helper Aliases
28
#alias Object[1].Value4 : Object.BackTouchPress
29
30
// States
31
#alias 0 : OPTIONS_SETUP
32
#alias 1 : OPTIONS_CONTROLS
33
#alias 2 : OPTIONS_SELECTED
34
#alias 3 : OPTIONS_STAGE_LOAD
35
#alias 4 : OPTIONS_SETTINGS_SETUP
36
#alias 5 : OPTIONS_SETTINGS_POPIN
37
#alias 6 : OPTIONS_SETTINGS_CONTROLS
38
#alias 7 : OPTIONS_UNUSED
39
#alias 8 : OPTIONS_UNUSED2
40
#alias 9 : OPTIONS_EXIT_SETTINGS
41
#alias 10 : OPTIONS_LEAVE_SUBMENU
42
#alias 11 : OPTIONS_EXIT
43
#alias 12 : OPTIONS_ENTER_ABOUT_MENU
44
#alias 13 : OPTIONS_ENTER_ABOUTMENU
45
#alias 14 : OPTIONS_ABOUTMENU_CONTROLS
46
#alias 15 : OPTIONS_EXIT_ABOUTMENU
47
#alias 16 : OPTIONS_RETURN_TO_TITLE
48
#alias 17 : OPTIONS_RETURN_TO_TITLE_ALT // before you say this looks silly, it's actually used to draw different
49
50
// Menu Window States
51
#alias 3 : MENUWINDOW_SHRINK
52
53
// Menu Button States
54
#alias 1 : MENUBUTTON_BUTTONS_IN
55
56
// Menu Heading States
57
#alias 1 : MENUHEADING_LEAVE_SCREEN
58
59
// Menu Heading Property Values
60
#alias 5 : MAINMENU_HEADER
61
62
// Presentation Stages
63
#alias 0 : STAGE_P_TITLE
64
#alias 6 : STAGE_P_HELP
65
#alias 7 : STAGE_P_STAFFCREDITS
66
#alias 12 : STAGE_P_APPLETV
67
68
// Global SFX
69
#alias 23 : SFX_G_MENUBUTTON
70
#alias 27 : SFX_G_SELECT
71
72
// Stage SFX
73
#alias 1 : SFX_S_BACKBUTTON
74
75
// Languages
76
#alias 0 : LANG_ENGLISH
77
#alias 1 : LANG_FRENCH
78
#alias 2 : LANG_ITALIAN
79
#alias 3 : LANG_DEUTSCH
80
#alias 4 : LANG_SPANISH
81
#alias 5 : LANG_JAPANESE
82
83
// Ink Effects
84
#alias 2 : INK_ALPHA
85
86
// DeviceType
87
#alias 1 : RETRO_MOBILE
88
89
// SaveRAM Values
90
// 32 : SavedSettings
91
// 33 : BGM
92
// 34 : SFX
93
// 35 : Controls
94
// 40 : Haptic
95
96
// Function declarations
97
#function OptionsMenu_DrawOptions
98
99
function OptionsMenu_DrawOptions
100
// Note: Technically, this function is from OptionsMenuH/OptionsMenuC function depending of the version played, replicated here for simplicity sake
101
switch Object.FlickerText
102
case false
103
if ArrayPos0 == Object.CurrentSelection
104
DrawSpriteScreenFX(9, FX_INK, Object.XPos, Object.YPos)
105
TempValue0 = ArrayPos0
106
TempValue0 += 14
107
DrawSpriteScreenFX(TempValue0, FX_INK, Object.XPos, Object.YPos)
108
else
109
TempValue0 = ArrayPos0
110
TempValue0 += 10
111
DrawSpriteScreenFX(TempValue0, FX_INK, Object.XPos, Object.YPos)
112
end if
113
break
114
115
case true
116
TempValue0 = Object.Timer
117
TempValue0 &= 3
118
TempValue0 >>= 1
119
DrawSpriteScreenFX(9, FX_INK, Object.XPos, Object.YPos)
120
if TempValue0 == 0
121
TempValue0 = ArrayPos0
122
TempValue0 += 14
123
DrawSpriteScreenFX(TempValue0, FX_INK, Object.XPos, Object.YPos)
124
end if
125
break
126
127
end switch
128
129
DrawSpriteScreenFX(8, FX_INK, Object.XPos, Object.YPos)
130
DrawSpriteScreenFX(ArrayPos0, FX_INK, Object.XPos, Object.YPos)
131
end function
132
133
sub ObjectMain
134
switch Object.State
135
case OPTIONS_SETUP
136
137
#platform: Use_Origins
138
Object.State = OPTIONS_SETTINGS_CONTROLS
139
Object.CurrentSelection = 1
140
ReadSaveRAM()
141
if SaveRAM[32] == false
142
SaveRAM[33] = 100 // BGM
143
SaveRAM[34] = 100 // SFX
144
SaveRAM[35] = 0 // Control Type
145
end if
146
Object.State = OPTIONS_SETTINGS_SETUP
147
148
Object.XPos = Screen.CenterX
149
Object.XPos -= 126
150
151
Object.YPos = 40
152
Object.YPos *= Object.CurrentSelection
153
Object.YPos += Screen.CenterY
154
Object.YPos -= 87
155
#endplatform
156
157
// This is part of Standalone too
158
#platform: Mobile
159
if Options.PhysicalControls == false
160
Object.CurrentSelection = -1
161
end if
162
#endplatform
163
164
#platform: Use_Standalone
165
Object.XPos = Screen.CenterX
166
Object.XPos -= 126
167
if Object.Timer < 256
168
Object.Alpha = Object.Timer
169
Object.Timer += 6
170
else
171
Object.Timer = 0
172
Object.Alpha = 255
173
Object.State++
174
end if
175
#endplatform
176
break
177
178
case OPTIONS_CONTROLS
179
#platform: Standard
180
CheckResult = true
181
#endplatform
182
183
#platform: Mobile
184
CheckEqual(Options.PhysicalControls, true)
185
#endplatform
186
187
#platform: Use_Origins
188
CheckEqual(Options.PhysicalControls, true)
189
#endplatform
190
191
// 2011 Steam lacks Options.PhysicalControls, so we force it here first and the other platforms can override it
192
if CheckResult == true
193
if KeyPress[0].Up == true
194
Object.CurrentSelection--
195
if Object.CurrentSelection < 0
196
Object.CurrentSelection = 3
197
end if
198
PlaySfx(SFX_G_MENUBUTTON, false)
199
end if
200
201
if KeyPress[0].Down == true
202
Object.CurrentSelection++
203
if Object.CurrentSelection > 3
204
Object.CurrentSelection = 0
205
end if
206
PlaySfx(SFX_G_MENUBUTTON, false)
207
end if
208
209
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
210
if CheckResult > -1
211
#platform: Mobile
212
Options.PhysicalControls = false
213
Object.CurrentSelection = -1
214
#endplatform
215
216
#platform: Use_Origins
217
Options.PhysicalControls = false
218
Object.CurrentSelection = -1
219
#endplatform
220
end if
221
else
222
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
223
TempValue3 = CheckResult
224
225
TempValue0 = 0
226
CallFunction(LoadSaveMenu_CheckTouchSave)
227
if CheckResult > -1
228
Object.CurrentSelection = 0
229
else
230
if TempValue3 < 0
231
if Object.CurrentSelection == 0
232
KeyPress[0].Start = true
233
end if
234
else
235
if Object.CurrentSelection == 0
236
Object.CurrentSelection = -1
237
end if
238
end if
239
end if
240
241
TempValue0 = 1
242
CallFunction(LoadSaveMenu_CheckTouchSave)
243
if CheckResult > -1
244
Object.CurrentSelection = 1
245
else
246
if TempValue3 < 0
247
if Object.CurrentSelection == 1
248
KeyPress[0].Start = true
249
end if
250
else
251
if Object.CurrentSelection == 1
252
Object.CurrentSelection = -1
253
end if
254
end if
255
end if
256
257
TempValue0 = 2
258
CallFunction(LoadSaveMenu_CheckTouchSave)
259
if CheckResult > -1
260
Object.CurrentSelection = 2
261
else
262
if TempValue3 < 0
263
if Object.CurrentSelection == 2
264
KeyPress[0].Start = true
265
end if
266
else
267
if Object.CurrentSelection == 2
268
Object.CurrentSelection = -1
269
end if
270
end if
271
end if
272
273
TempValue0 = 3
274
CallFunction(LoadSaveMenu_CheckTouchSave)
275
if CheckResult > -1
276
Object.CurrentSelection = 3
277
else
278
if TempValue3 < 0
279
if Object.CurrentSelection == 3
280
KeyPress[0].Start = true
281
end if
282
else
283
if Object.CurrentSelection == 3
284
Object.CurrentSelection = -1
285
end if
286
end if
287
end if
288
289
CallFunction(MenuHeading_CheckTouchBack)
290
if KeyPress[0].Up == true
291
Object.CurrentSelection = 3
292
#platform: Mobile
293
Options.PhysicalControls = true
294
#endplatform
295
#platform: Use_Origins
296
Options.PhysicalControls = true
297
#endplatform
298
end if
299
300
if KeyPress[0].Down == true
301
Object.CurrentSelection = 0
302
#platform: Mobile
303
Options.PhysicalControls = true
304
#endplatform
305
#platform: Use_Origins
306
Options.PhysicalControls = true
307
#endplatform
308
end if
309
end if
310
311
CheckResult = false
312
313
if Object.CurrentSelection > -1
314
if KeyPress[0].Start == true
315
CheckResult = true
316
end if
317
318
if KeyPress[0].ButtonA == true
319
CheckResult = true
320
end if
321
end if
322
323
if CheckResult == true
324
if Object.CurrentSelection < 4
325
ArrayPos0 = Object.CurrentSelection
326
Object.FlickerText = 1
327
Object.State++
328
switch Object.CurrentSelection
329
case 0
330
StopMusic()
331
break
332
333
case 1
334
break
335
336
case 2
337
StopMusic()
338
break
339
340
case 3
341
break
342
343
end switch
344
PlaySfx(SFX_G_SELECT, false)
345
end if
346
end if
347
348
if KeyPress[0].ButtonB == true
349
350
#platform: Use_Origins
351
Object.State = OPTIONS_RETURN_TO_TITLE
352
Object.Timer = 0
353
StopMusic()
354
#endplatform
355
356
#platform: Use_Standalone
357
Object.Timer = 248
358
Object.State = OPTIONS_EXIT
359
PlayStageSfx(SFX_S_BACKBUTTON, false)
360
#endplatform
361
362
end if
363
break
364
365
case OPTIONS_SELECTED
366
if Object.Timer < 30
367
Object.Timer++
368
else
369
Object.Timer = 0
370
ArrayPos0 = Object.CurrentSelection
371
Object.FlickerText = 0
372
switch Object.CurrentSelection
373
case 0
374
Object.State = OPTIONS_STAGE_LOAD
375
break
376
377
case 1
378
ReadSaveRAM()
379
if SaveRAM[32] == false // SavedSettings
380
SaveRAM[33] = 100 // BGM
381
SaveRAM[34] = 100 // SFX
382
SaveRAM[35] = 0 // Control Type
383
end if
384
Object.State = OPTIONS_SETTINGS_SETUP
385
Object.YPos = 40
386
Object.YPos *= Object.CurrentSelection
387
Object.YPos += Screen.CenterY
388
Object.YPos -= 87
389
break
390
391
case 2
392
Object.State = OPTIONS_STAGE_LOAD
393
break
394
395
case 3
396
Object.State = OPTIONS_ENTER_ABOUT_MENU
397
Object.YPos = 40
398
Object.YPos *= Object.CurrentSelection
399
Object.YPos += Screen.CenterY
400
Object.YPos -= 87
401
break
402
403
end switch
404
end if
405
break
406
407
case OPTIONS_STAGE_LOAD
408
if Object.Timer < 320
409
Object.Timer += 8
410
else
411
switch Object.CurrentSelection
412
case 0
413
if Options.DevMenuFlag == true
414
Engine.State = RESET_GAME
415
else
416
417
#platform: Use_Origins
418
if Engine.DeviceType == RETRO_MOBILE
419
Stage.ListPos = STAGE_P_HELP
420
else
421
Stage.ListPos = STAGE_P_APPLETV
422
end if
423
#endplatform
424
425
#platform: Use_Standalone
426
Stage.ListPos = STAGE_P_HELP
427
#endplatform
428
LoadStage()
429
end if
430
break
431
432
case 2
433
Stage.ListPos = STAGE_P_STAFFCREDITS
434
LoadStage()
435
break
436
437
case 3 //Unused
438
Engine.State = RESET_GAME
439
break
440
441
end switch
442
end if
443
444
TempValue0 = Object.Timer
445
if TempValue0 > 255
446
TempValue0 = 255
447
end if
448
SetScreenFade(0, 0, 0, TempValue0)
449
break
450
451
case OPTIONS_SETTINGS_SETUP
452
TempValue0 = Screen.CenterY
453
TempValue0 -= 87
454
if Object.YPos > TempValue0
455
Object.YPos -= 8
456
if Object.YPos < TempValue0
457
Object.YPos = TempValue0
458
end if
459
else
460
Object.State++
461
Object.Alpha = 0
462
Object.OptionCount = 0
463
464
#platform: Use_Origins
465
if Options.PhysicalControls == false
466
ArrayPos0 = Object.CurrentSelection
467
Object.OptionCount = -1
468
end if
469
#endplatform
470
471
#platform: Mobile
472
if Options.PhysicalControls == false
473
ArrayPos0 = Object.CurrentSelection
474
Object.OptionCount = -1
475
end if
476
#endplatform
477
478
end if
479
break
480
481
case OPTIONS_SETTINGS_POPIN
482
if Object.Timer < 256
483
Object.Alpha = Object.Timer
484
Object.Timer += 8
485
else
486
Object.Timer = 0
487
Object.Alpha = 255
488
Object.State++
489
end if
490
break
491
492
case OPTIONS_SETTINGS_CONTROLS
493
// Origins completely drops most of this options in favor of letting HE2 handle audio
494
// So we only have available the spin dash type
495
ArrayPos0 = Object.CurrentSelection
496
497
#platform: Use_Origins
498
499
Object.OptionCount = 2
500
501
// Control Type
502
if KeyPress[0].Left == true
503
SaveRAM[35]--
504
if SaveRAM[35] < 0
505
SaveRAM[35] = 1
506
end if
507
PlaySfx(SFX_G_MENUBUTTON, false)
508
end if
509
510
if KeyPress[0].Right == true
511
SaveRAM[35]++
512
if SaveRAM[35] > 1
513
SaveRAM[35] = 0
514
end if
515
PlaySfx(SFX_G_MENUBUTTON, false)
516
end if
517
518
// Save and leave
519
if KeyPress[0].ButtonA == true
520
Object.State = OPTIONS_RETURN_TO_TITLE_ALT
521
Object.Timer = 0
522
Options.OriginalControls = SaveRAM[35]
523
SaveRAM[32] = true
524
WriteSaveRAM()
525
game.callbackParam0 = Options.OriginalControls
526
EngineCallback(NOTIFY_SPIN_DASH_TYPE)
527
528
PlaySfx(SFX_G_SELECT, false)
529
StopMusic()
530
end if
531
532
// Just leave
533
if KeyPress[0].ButtonB == true
534
Object.State = OPTIONS_RETURN_TO_TITLE_ALT
535
Object.Timer = 0
536
PlayStageSfx(SFX_S_BACKBUTTON, false)
537
StopMusic()
538
end if
539
#endplatform
540
541
#platform: Standard
542
CheckResult = true
543
#endplatform
544
545
#platform: Mobile
546
CheckEqual(Options.PhysicalControls, true)
547
#endplatform
548
549
#platform: Use_Standalone
550
if CheckResult == true
551
if KeyPress[0].Up == true
552
Object.OptionCount--
553
PlaySfx(SFX_G_MENUBUTTON, false)
554
if Object.OptionCount < 0
555
Object.OptionCount = 2
556
end if
557
end if
558
559
if KeyPress[0].Down == true
560
Object.OptionCount++
561
PlaySfx(SFX_G_MENUBUTTON, false)
562
if Object.OptionCount > 2
563
Object.OptionCount = 0
564
end if
565
end if
566
567
switch Object.OptionCount
568
case 0 // BGM
569
if KeyPress[0].Left == true
570
Object.BGMDecreaseTimer = 10
571
SaveRAM[33] -= 10
572
if SaveRAM[33] < 0
573
SaveRAM[33] = 0
574
Engine.BGMVolume = SaveRAM[33]
575
else
576
Engine.BGMVolume = SaveRAM[33]
577
PlaySfx(SFX_G_MENUBUTTON, false)
578
end if
579
end if
580
581
if KeyPress[0].Right == true
582
Object.BGMIncreaseTimer = 10
583
SaveRAM[33] += 10
584
if SaveRAM[33] > 100
585
SaveRAM[33] = 100
586
Engine.BGMVolume = SaveRAM[33]
587
else
588
Engine.BGMVolume = SaveRAM[33]
589
PlaySfx(SFX_G_MENUBUTTON, false)
590
end if
591
end if
592
break
593
594
case 1 // SFX
595
if KeyPress[0].Left == true
596
Object.SFXDecreaseTimer = 10
597
SaveRAM[34] -= 10
598
if SaveRAM[34] < 0
599
SaveRAM[34] = 0
600
Engine.SFXVolume = SaveRAM[34]
601
else
602
PlaySfx(SFX_G_MENUBUTTON, false)
603
Engine.SFXVolume = SaveRAM[34]
604
end if
605
end if
606
607
if KeyPress[0].Right == true
608
Object.SFXIncreaseTimer = 10
609
SaveRAM[34] += 10
610
if SaveRAM[34] > 100
611
SaveRAM[34] = 100
612
else
613
PlaySfx(SFX_G_MENUBUTTON, false)
614
Engine.SFXVolume = SaveRAM[34]
615
end if
616
end if
617
break
618
619
case 2 // Control Type
620
if KeyPress[0].Left == true
621
SaveRAM[35]--
622
if SaveRAM[35] < 0
623
SaveRAM[35] = 1
624
end if
625
PlaySfx(SFX_G_MENUBUTTON, false)
626
end if
627
628
if KeyPress[0].Right == true
629
SaveRAM[35]++
630
if SaveRAM[35] > 1
631
SaveRAM[35] = 0
632
end if
633
PlaySfx(SFX_G_MENUBUTTON, false)
634
end if
635
break
636
637
end switch
638
end if
639
#endplatform
640
641
#platform: Mobile
642
// Just to make it look neat, instead of continuing the code from an open if on another platform, we ask again for a check in the physical controls
643
if Options.PhysicalControls == true
644
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
645
if CheckResult > -1
646
Options.PhysicalControls = false
647
Object.OptionCount = -1
648
end if
649
else
650
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
651
if CheckResult > -1
652
Object.TouchDelay++
653
Object.TouchDelay %= 24
654
else
655
Object.TouchDelay = 0
656
end if
657
TempValue3 = CheckResult
658
659
TempValue0 = Screen.CenterX
660
TempValue0 += 16
661
TempValue1 = Screen.CenterX
662
TempValue1 += 48
663
// BGM Decrease
664
CheckTouchRect(TempValue0, 72, TempValue1, 99)
665
if CheckResult > -1
666
Object.OptionCount = 3
667
Object.BGMDecreaseTimer = 10
668
if Object.TouchDelay == 23
669
SaveRAM[33] -= 10
670
if SaveRAM[33] < 0
671
SaveRAM[33] = 0
672
Engine.BGMVolume = SaveRAM[33]
673
else
674
Engine.BGMVolume = SaveRAM[33]
675
PlaySfx(SFX_G_MENUBUTTON, false)
676
end if
677
end if
678
else
679
if TempValue3 < 0
680
if Object.OptionCount == 3
681
Object.BGMDecreaseTimer = 0
682
SaveRAM[33] -= 10
683
if SaveRAM[33] < 0
684
SaveRAM[33] = 0
685
Engine.BGMVolume = SaveRAM[33]
686
else
687
Engine.BGMVolume = SaveRAM[33]
688
PlaySfx(SFX_G_MENUBUTTON, false)
689
end if
690
Object.OptionCount = -1
691
end if
692
else
693
if Object.OptionCount == 3
694
Object.OptionCount = -1
695
end if
696
end if
697
end if
698
699
// SFX Decrease
700
CheckTouchRect(TempValue0, 101, TempValue1, 128)
701
if CheckResult > -1
702
Object.OptionCount = 4
703
Object.SFXDecreaseTimer = 10
704
if Object.TouchDelay == 23
705
SaveRAM[34] -= 10
706
if SaveRAM[34] < 0
707
SaveRAM[34] = 0
708
Engine.SFXVolume = SaveRAM[34]
709
else
710
Engine.SFXVolume = SaveRAM[34]
711
PlaySfx(SFX_G_MENUBUTTON, false)
712
end if
713
end if
714
else
715
if TempValue3 < 0
716
if Object.OptionCount == 4
717
Object.SFXDecreaseTimer = 0
718
SaveRAM[34] -= 10
719
if SaveRAM[34] < 0
720
SaveRAM[34] = 0
721
Engine.SFXVolume = SaveRAM[34]
722
else
723
Engine.SFXVolume = SaveRAM[34]
724
PlaySfx(SFX_G_MENUBUTTON, false)
725
end if
726
Object.OptionCount = -1
727
end if
728
else
729
if Object.OptionCount == 4
730
Object.OptionCount = -1
731
end if
732
end if
733
end if
734
735
// BGM Increase
736
TempValue0 = Screen.CenterX
737
TempValue0 += 84
738
TempValue1 = Screen.CenterX
739
TempValue1 += 120
740
CheckTouchRect(TempValue0, 72, TempValue1, 99)
741
if CheckResult > -1
742
Object.OptionCount = 5
743
Object.BGMIncreaseTimer = 10
744
if Object.TouchDelay == 23
745
SaveRAM[33] += 10
746
if SaveRAM[33] > 100
747
SaveRAM[33] = 100
748
Engine.BGMVolume = SaveRAM[33]
749
else
750
Engine.BGMVolume = SaveRAM[33]
751
PlaySfx(SFX_G_MENUBUTTON, false)
752
end if
753
end if
754
else
755
if TempValue3 < 0
756
if Object.OptionCount == 5
757
Object.BGMIncreaseTimer = 0
758
SaveRAM[33] += 10
759
if SaveRAM[33] > 100
760
SaveRAM[33] = 100
761
Engine.BGMVolume = SaveRAM[33]
762
else
763
Engine.BGMVolume = SaveRAM[33]
764
PlaySfx(SFX_G_MENUBUTTON, false)
765
end if
766
Object.OptionCount = -1
767
end if
768
else
769
if Object.OptionCount == 5
770
Object.OptionCount = -1
771
end if
772
end if
773
end if
774
775
// SFX Increase
776
CheckTouchRect(TempValue0, 101, TempValue1, 128)
777
if CheckResult > -1
778
Object.OptionCount = 6
779
Object.SFXIncreaseTimer = 10
780
if Object.TouchDelay == 23
781
SaveRAM[34] += 10
782
if SaveRAM[34] > 100
783
SaveRAM[34] = 100
784
Engine.SFXVolume = SaveRAM[34]
785
else
786
Engine.SFXVolume = SaveRAM[34]
787
PlaySfx(SFX_G_MENUBUTTON, false)
788
end if
789
end if
790
else
791
if TempValue3 < 0
792
if Object.OptionCount == 6
793
Object.SFXIncreaseTimer = 0
794
SaveRAM[34] += 10
795
if SaveRAM[34] > 100
796
SaveRAM[34] = 100
797
Engine.SFXVolume = SaveRAM[34]
798
else
799
Engine.SFXVolume = SaveRAM[34]
800
PlaySfx(SFX_G_MENUBUTTON, false)
801
end if
802
Object.OptionCount = -1
803
end if
804
else
805
if Object.OptionCount == 6
806
Object.OptionCount = -1
807
end if
808
end if
809
end if
810
811
// CD Control Type
812
TempValue0 = Screen.CenterX
813
TempValue0 += 14
814
TempValue1 = Screen.CenterX
815
TempValue1 += 64
816
CheckTouchRect(TempValue0, 132, TempValue1, 184)
817
if CheckResult > -1
818
Object.OptionCount = 7
819
else
820
if TempValue3 < 0
821
if Object.OptionCount == 7
822
SaveRAM[35] = 0
823
PlaySfx(SFX_G_MENUBUTTON, false)
824
Object.OptionCount = -1
825
end if
826
else
827
if Object.OptionCount == 7
828
Object.OptionCount = -1
829
end if
830
end if
831
end if
832
833
// S2 Control Type
834
TempValue0 = Screen.CenterX
835
TempValue0 += 68
836
TempValue1 = Screen.CenterX
837
TempValue1 += 114
838
CheckTouchRect(TempValue0, 132, TempValue1, 184)
839
if CheckResult > -1
840
Object.OptionCount = 8
841
else
842
if TempValue3 < 0
843
if Object.OptionCount == 8
844
SaveRAM[35] = 1
845
PlaySfx(SFX_G_MENUBUTTON, false)
846
Object.OptionCount = -1
847
end if
848
else
849
if Object.OptionCount == 8
850
Object.OptionCount = -1
851
end if
852
end if
853
end if
854
855
TempValue0 = Screen.XSize
856
TempValue0 -= 96
857
CheckTouchRect(TempValue0, 192, Screen.XSize, Screen.YSize)
858
if CheckResult > -1
859
Object.OptionCount = 9
860
Object.BackTouchPress = true
861
else
862
Object.BackTouchPress = false
863
if TempValue3 < 0
864
if Object.OptionCount == 9
865
KeyPress[0].ButtonB = true
866
end if
867
else
868
if Object.OptionCount == 9
869
Object.OptionCount = -1
870
end if
871
end if
872
end if
873
874
if KeyPress[0].Up == true
875
Object.OptionCount = 2
876
Options.PhysicalControls = true
877
end if
878
879
if KeyPress[0].Down == true
880
Object.OptionCount = 0
881
Options.PhysicalControls = true
882
end if
883
end if
884
#endplatform
885
886
#platform: Use_Standalone
887
if KeyPress[0].ButtonB == true
888
Object.State = OPTIONS_EXIT_SETTINGS
889
Object.Timer = 248
890
891
Options.OriginalControls = SaveRAM[35]
892
SaveRAM[32] = true
893
WriteSaveRAM()
894
895
PlayStageSfx(SFX_S_BACKBUTTON, false)
896
end if
897
#endplatform
898
899
900
break
901
902
case OPTIONS_UNUSED
903
if Object.Timer < 30
904
Object.Timer++
905
else
906
Object.Timer = 0
907
Object.State++
908
end if
909
break
910
911
case OPTIONS_UNUSED2
912
if Object.Timer > 0
913
Object.Timer -= 8
914
else
915
916
#platform: Mobile
917
if Options.PhysicalControls == false
918
Object.CurrentSelection = -1
919
end if
920
#endplatform
921
922
Object.State = OPTIONS_CONTROLS
923
PlayMusic(0)
924
end if
925
926
TempValue0 = Object.Timer
927
if TempValue0 > 255
928
TempValue0 = 255
929
end if
930
931
SetScreenFade(0, 0, 0, TempValue0)
932
break
933
934
case OPTIONS_EXIT_SETTINGS
935
if Object.Timer > 0
936
Object.Alpha = Object.Timer
937
Object.Timer -= 8
938
else
939
Object.Alpha = 0
940
Object.State++
941
end if
942
break
943
944
case OPTIONS_LEAVE_SUBMENU
945
TempValue0 = Object.CurrentSelection
946
TempValue0 *= 40
947
TempValue0 += Screen.CenterY
948
TempValue0 -= 87
949
if Object.YPos < TempValue0
950
Object.YPos += 8
951
if Object.YPos > TempValue0
952
Object.YPos = TempValue0
953
end if
954
Object.Alpha = 0
955
else
956
957
#platform: Mobile
958
if Options.PhysicalControls == false
959
Object.CurrentSelection = -1
960
end if
961
#endplatform
962
963
Object.State = OPTIONS_CONTROLS
964
Object.Alpha = 255
965
end if
966
break
967
968
case OPTIONS_EXIT
969
if Object.Timer > 0
970
Object.Alpha = Object.Timer
971
Object.Timer -= 8
972
else
973
Object.Type = TypeName[Blank Object]
974
MenuWindow.State = MENUWINDOW_SHRINK
975
//All of this is MenuButton Objects
976
Object[34].State = MENUBUTTON_BUTTONS_IN
977
Object[35].State = MENUBUTTON_BUTTONS_IN
978
Object[36].State = MENUBUTTON_BUTTONS_IN
979
Object[37].State = MENUBUTTON_BUTTONS_IN
980
Object[38].State = MENUBUTTON_BUTTONS_IN
981
Object[39].State = MENUBUTTON_BUTTONS_IN
982
Object[40].State = MENUBUTTON_BUTTONS_IN
983
Object[41].State = MENUBUTTON_BUTTONS_IN
984
Object[42].State = MENUBUTTON_BUTTONS_IN
985
//End
986
MenuHeading.State = MENUHEADING_LEAVE_SCREEN
987
MenuHeading.Header = MAINMENU_HEADER
988
end if
989
break
990
991
case OPTIONS_ENTER_ABOUT_MENU
992
TempValue0 = Screen.CenterY
993
TempValue0 -= 87
994
if Object.YPos > TempValue0
995
Object.YPos -= 8
996
if Object.YPos < TempValue0
997
Object.YPos = TempValue0
998
end if
999
else
1000
TempValue0 = Object.EntityNo
1001
TempValue0 += 10
1002
ResetObjectEntity(TempValue0, TypeName[About Menu], 0, 0, 0)
1003
SetupMenu(MENU_1, 0, 3, 1)
1004
GetVersionNumber(MENU_1, 1)
1005
Object[+10].InkEffect = INK_ALPHA
1006
Object.State++
1007
Object.Alpha = 0
1008
Object.OptionCount = 0
1009
1010
#platform: Mobile
1011
if Options.PhysicalControls == false
1012
ArrayPos0 = Object.CurrentSelection
1013
Object.OptionCount = -1
1014
end if
1015
#endplatform
1016
1017
end if
1018
break
1019
1020
case OPTIONS_ENTER_ABOUTMENU
1021
if Object.Timer < 256
1022
Object.Alpha = Object.Timer
1023
Object.Timer += 8
1024
else
1025
Object.Timer = 0
1026
Object.Alpha = 255
1027
Object.State++
1028
end if
1029
break
1030
1031
case OPTIONS_ABOUTMENU_CONTROLS
1032
#platform: Mobile
1033
//Off-brand MenuHeading_CheckTouchBack
1034
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
1035
TempValue3 = CheckResult
1036
TempValue0 = Screen.XSize
1037
TempValue0 -= 96
1038
CheckTouchRect(TempValue0, 192, Screen.XSize, Screen.YSize)
1039
if CheckResult > -1
1040
Object.OptionCount = 9
1041
Object.BackTouchPress = true
1042
else
1043
Object.BackTouchPress = false
1044
if TempValue3 < 0
1045
if Object.OptionCount == 9
1046
KeyPress[0].ButtonB = true
1047
end if
1048
else
1049
if Object.OptionCount == 9
1050
Object.OptionCount = -1
1051
end if
1052
end if
1053
end if
1054
#endplatform
1055
if KeyPress[0].ButtonB == true
1056
Object.State = OPTIONS_EXIT_ABOUTMENU
1057
Object.Timer = 248
1058
PlayStageSfx(SFX_S_BACKBUTTON, false)
1059
end if
1060
break
1061
1062
case OPTIONS_EXIT_ABOUTMENU
1063
if Object.Timer > 0
1064
Object.Alpha = Object.Timer
1065
Object.Timer -= 8
1066
else
1067
Object.Alpha = 0
1068
Object.State = OPTIONS_LEAVE_SUBMENU
1069
Object[+10].Type = TypeName[Blank Object]
1070
end if
1071
break
1072
1073
case OPTIONS_RETURN_TO_TITLE
1074
Object.Timer += 4
1075
if Object.Timer == 384
1076
Stage.ActiveList = PRESENTATION_STAGE
1077
Stage.ListPos = STAGE_P_TITLE
1078
LoadStage()
1079
end if
1080
SetScreenFade(0, 0, 0, Object.Timer)
1081
break
1082
1083
case OPTIONS_RETURN_TO_TITLE_ALT
1084
Object.Timer += 4
1085
if Object.Timer == 384
1086
Stage.ActiveList = PRESENTATION_STAGE
1087
Stage.ListPos = STAGE_P_TITLE
1088
LoadStage()
1089
end if
1090
SetScreenFade(0, 0, 0, Object.Timer)
1091
break
1092
1093
end switch
1094
end sub
1095
1096
1097
sub ObjectDraw
1098
switch Object.State
1099
case OPTIONS_SETUP
1100
case OPTIONS_CONTROLS
1101
case OPTIONS_SELECTED
1102
case OPTIONS_STAGE_LOAD
1103
case OPTIONS_UNUSED2
1104
case OPTIONS_EXIT
1105
case OPTIONS_RETURN_TO_TITLE
1106
#platform: Use_Origins
1107
Object.YPos = Screen.CenterY
1108
Object.YPos -= 67
1109
ArrayPos0 = 0
1110
CallFunction(OptionsMenu_DrawOptions)
1111
Object.YPos += 60
1112
ArrayPos0++
1113
CallFunction(OptionsMenu_DrawOptions)
1114
#endplatform
1115
1116
#platform: Use_Standalone
1117
Object.YPos = Screen.CenterY
1118
Object.YPos -= 87
1119
ArrayPos0 = 0
1120
CallFunction(OptionsMenu_DrawOptions)
1121
Object.YPos += 40
1122
ArrayPos0++
1123
CallFunction(OptionsMenu_DrawOptions)
1124
Object.YPos += 40
1125
ArrayPos0++
1126
CallFunction(OptionsMenu_DrawOptions)
1127
Object.YPos += 40
1128
ArrayPos0++
1129
CallFunction(OptionsMenu_DrawOptions)
1130
#endplatform
1131
1132
break
1133
1134
case OPTIONS_SETTINGS_SETUP
1135
case OPTIONS_ENTER_ABOUT_MENU
1136
ArrayPos0 = Object.CurrentSelection
1137
CallFunction(OptionsMenu_DrawOptions)
1138
break
1139
1140
case OPTIONS_SETTINGS_POPIN
1141
case OPTIONS_SETTINGS_CONTROLS
1142
case OPTIONS_EXIT_SETTINGS
1143
case OPTIONS_LEAVE_SUBMENU
1144
case OPTIONS_RETURN_TO_TITLE_ALT
1145
ArrayPos0 = Object.CurrentSelection
1146
TempValue0 = Screen.CenterX
1147
TempValue0 += 15
1148
1149
#platform: Use_Origins
1150
if Object.OptionCount == 7
1151
DrawSpriteScreenFX(40, FX_INK, TempValue0, 93)
1152
else
1153
DrawSpriteScreenFX(29, FX_INK, TempValue0, 93)
1154
end if
1155
1156
TempValue0 += 52
1157
if Object.OptionCount == 8
1158
DrawSpriteScreenFX(41, FX_INK, TempValue0, 93)
1159
else
1160
DrawSpriteScreenFX(30, FX_INK, TempValue0, 93)
1161
end if
1162
#endplatform
1163
1164
#platform: Use_Standalone
1165
if Object.OptionCount == 7
1166
DrawSpriteScreenFX(40, FX_INK, TempValue0, 134)
1167
else
1168
DrawSpriteScreenFX(29, FX_INK, TempValue0, 134)
1169
end if
1170
1171
TempValue0 += 52
1172
if Object.OptionCount == 8
1173
DrawSpriteScreenFX(41, FX_INK, TempValue0, 134)
1174
else
1175
DrawSpriteScreenFX(30, FX_INK, TempValue0, 134)
1176
end if
1177
1178
#endplatform
1179
1180
TempValue0 = Screen.CenterX
1181
TempValue0 -= 117
1182
1183
#platform: Standard
1184
CheckResult = true
1185
#endplatform
1186
1187
#platform: Mobile
1188
CheckEqual(Options.PhysicalControls, true)
1189
#endplatform
1190
1191
#platform: Use_Standalone
1192
// 2011 Steam lacks Options.PhysicalControls, so we force it here first and the other platforms can override it
1193
if CheckResult == true
1194
switch Object.OptionCount
1195
case 0
1196
DrawSpriteScreenFX(32, FX_INK, TempValue0, 81)
1197
DrawSpriteScreenFX(33, FX_INK, TempValue0, 110)
1198
DrawSpriteScreenFX(35, FX_INK, TempValue0, 151)
1199
break
1200
1201
case 1
1202
DrawSpriteScreenFX(31, FX_INK, TempValue0, 81)
1203
DrawSpriteScreenFX(34, FX_INK, TempValue0, 110)
1204
DrawSpriteScreenFX(35, FX_INK, TempValue0, 151)
1205
break
1206
1207
case 2
1208
DrawSpriteScreenFX(31, FX_INK, TempValue0, 81)
1209
DrawSpriteScreenFX(33, FX_INK, TempValue0, 110)
1210
DrawSpriteScreenFX(36, FX_INK, TempValue0, 151)
1211
break
1212
1213
end switch
1214
else
1215
DrawSpriteScreenFX(31, FX_INK, TempValue0, 81)
1216
DrawSpriteScreenFX(33, FX_INK, TempValue0, 110)
1217
DrawSpriteScreenFX(35, FX_INK, TempValue0, 151)
1218
end if
1219
1220
//Controls Drawing
1221
if SaveRAM[35] == 0
1222
DrawSpriteScreenFX(37, FX_INK, TempValue0, 169)
1223
TempValue0 += 132
1224
DrawSpriteScreenFX(39, FX_INK, TempValue0, 134)
1225
else
1226
DrawSpriteScreenFX(38, FX_INK, TempValue0, 169)
1227
TempValue0 += 184
1228
DrawSpriteScreenFX(39, FX_INK, TempValue0, 134)
1229
end if
1230
1231
//BGM Drawing
1232
TempValue1 = Screen.CenterX
1233
TempValue1 += 23
1234
if Object.BGMDecreaseTimer > 0
1235
Object.BGMDecreaseTimer--
1236
DrawSpriteScreenFX(5, FX_INK, TempValue1, 76)
1237
else
1238
DrawSpriteScreenFX(4, FX_INK, TempValue1, 76)
1239
end if
1240
1241
TempValue1 += 66
1242
if Object.BGMIncreaseTimer > 0
1243
Object.BGMIncreaseTimer--
1244
DrawSpriteScreenFX(7, FX_INK, TempValue1, 76)
1245
else
1246
DrawSpriteScreenFX(6, FX_INK, TempValue1, 76)
1247
end if
1248
1249
TempValue1 -= 42
1250
DrawSpriteScreenFX(18, FX_INK, TempValue1, 76)
1251
1252
TempValue0 = SaveRAM[33]
1253
TempValue0 /= 10
1254
TempValue0 += 18
1255
DrawSpriteScreenFX(TempValue0, FX_INK, TempValue1, 76)
1256
1257
//SFX Drawing
1258
TempValue1 = Screen.CenterX
1259
TempValue1 += 23
1260
if Object.SFXDecreaseTimer > 0
1261
Object.SFXDecreaseTimer--
1262
DrawSpriteScreenFX(5, FX_INK, TempValue1, 105)
1263
else
1264
DrawSpriteScreenFX(4, FX_INK, TempValue1, 105)
1265
end if
1266
1267
TempValue1 += 66
1268
if Object.SFXIncreaseTimer > 0
1269
Object.SFXIncreaseTimer--
1270
DrawSpriteScreenFX(7, FX_INK, TempValue1, 105)
1271
else
1272
DrawSpriteScreenFX(6, FX_INK, TempValue1, 105)
1273
end if
1274
1275
TempValue1 -= 42
1276
DrawSpriteScreenFX(18, FX_INK, TempValue1, 105)
1277
1278
TempValue0 = SaveRAM[34]
1279
TempValue0 /= 10
1280
TempValue0 += 18
1281
DrawSpriteScreenFX(TempValue0, FX_INK, TempValue1, 105)
1282
#endplatform
1283
1284
#platform: Use_Origins
1285
DrawSpriteScreenFX(36,FX_INK,TempValue0,110)
1286
if SaveRAM[35] == 0
1287
DrawSpriteScreenFX(37, FX_INK, TempValue0, 128)
1288
TempValue0 += 132
1289
DrawSpriteScreenFX(39, FX_INK, TempValue0, 93)
1290
else
1291
DrawSpriteScreenFX(38, FX_INK, TempValue0, 128)
1292
TempValue0 += 184
1293
DrawSpriteScreenFX(39, FX_INK, TempValue0, 93)
1294
end if
1295
1296
TempValue1 = Screen.CenterX
1297
TempValue1 += 23
1298
if Object.BGMDecreaseTimer > 0
1299
Object.BGMDecreaseTimer--
1300
else
1301
end if
1302
TempValue1 += 66
1303
if Object.BGMIncreaseTimer > 0
1304
Object.BGMIncreaseTimer--
1305
else
1306
end if
1307
TempValue1 -= 42
1308
1309
TempValue0 = SaveRAM[33]
1310
TempValue0 /= 10
1311
TempValue0 += 18
1312
1313
TempValue1 = Screen.CenterX
1314
TempValue1 += 23
1315
if Object.SFXDecreaseTimer > 0
1316
Object.SFXDecreaseTimer--
1317
else
1318
end if
1319
TempValue1 += 66
1320
if Object.SFXIncreaseTimer > 0
1321
Object.SFXIncreaseTimer--
1322
else
1323
end if
1324
TempValue1 -= 42
1325
#endplatform
1326
1327
Object.Alpha = 255
1328
CallFunction(OptionsMenu_DrawOptions)
1329
break
1330
1331
case OPTIONS_ENTER_ABOUTMENU
1332
case OPTIONS_ABOUTMENU_CONTROLS
1333
case OPTIONS_EXIT_ABOUTMENU
1334
ArrayPos0 = Object.CurrentSelection
1335
Object.Alpha = 255
1336
CallFunction(OptionsMenu_DrawOptions)
1337
break
1338
1339
end switch
1340
end sub
1341
1342
1343
sub ObjectStartup
1344
switch Engine.Language
1345
case LANG_ENGLISH
1346
LoadSpriteSheet("Menu/MenuGfx2_EN.gif")
1347
break
1348
case LANG_FRENCH
1349
LoadSpriteSheet("Menu/MenuGfx2_FR.gif")
1350
break
1351
case LANG_ITALIAN
1352
LoadSpriteSheet("Menu/MenuGfx2_IT.gif")
1353
break
1354
case LANG_DEUTSCH
1355
LoadSpriteSheet("Menu/MenuGfx2_DE.gif")
1356
break
1357
case LANG_SPANISH
1358
LoadSpriteSheet("Menu/MenuGfx2_ES.gif")
1359
break
1360
case LANG_JAPANESE
1361
LoadSpriteSheet("Menu/MenuGfx2_JP.gif")
1362
break
1363
end switch
1364
1365
if SaveRAM[32] == false
1366
SaveRAM[33] = 100
1367
SaveRAM[34] = 100
1368
SaveRAM[35] = 0
1369
end if
1370
Options.OriginalControls = SaveRAM[35]
1371
1372
SpriteFrame(4, 2, 32, 32, 479, 34) // #0 - Gear
1373
SpriteFrame(4, 2, 32, 32, 479, 34) // #1 - Gear Again
1374
SpriteFrame(4, 2, 32, 32, 479, 34) // #2 - Why is this a Gear again
1375
SpriteFrame(4, 2, 32, 32, 479, 34) // #3 - Please Stop.
1376
SpriteFrame(0, 0, 20, 20, 168, 366) // #4 - Decrease button
1377
SpriteFrame(0, 0, 20, 20, 168, 387) // #5 - Decrease button Highlight
1378
SpriteFrame(0, 0, 20, 20, 189, 366) // #6 - Increase button
1379
SpriteFrame(0, 0, 20, 20, 189, 387) // #7 - Increase button Highlight
1380
SpriteFrame(45, 12, 13, 13, 488, 1) // #8 - Triangle detail
1381
SpriteFrame(0, 0, 250, 37, 259, 421) // #9 - Selection Border
1382
1383
if Options.DevMenuFlag == true
1384
SpriteFrame(64, 12, 66, 16, 259, 598) // #10 - Dev Menu
1385
else
1386
SpriteFrame(64, 12, 128, 16, 1, 188) // #10 - Instructions
1387
end if
1388
1389
SpriteFrame(64, 12, 128, 16, 1, 205) // #11 - Settings
1390
SpriteFrame(64, 12, 128, 16, 1, 222) // #12 - Staff Credits
1391
SpriteFrame(64, 12, 128, 16, 1, 239) // #13 - About
1392
1393
if Options.DevMenuFlag == true
1394
SpriteFrame(64, 12, 66, 16, 326, 598) // #14 - Dev Menu Highlight
1395
else
1396
SpriteFrame(64, 12, 128, 16, 130, 188) // #14 - Instructions Highlight
1397
end if
1398
1399
SpriteFrame(64, 12, 128, 16, 130, 205) // #15 - Settings Highlight
1400
SpriteFrame(64, 12, 128, 16, 130, 222) // #16 - Staff Credits Highlight
1401
SpriteFrame(64, 12, 128, 16, 130, 239) // #17 - About Highlight
1402
SpriteFrame(0, 0, 38, 20, 171, 324) // #18 - Minimal Volume
1403
SpriteFrame(0, 0, 4, 20, 171, 345) // #19 - Volume Bar 1
1404
SpriteFrame(0, 0, 8, 20, 171, 345) // #20 - Volume Bar 2
1405
SpriteFrame(0, 0, 12, 20, 171, 345) // #21 - Volume Bar 3
1406
SpriteFrame(0, 0, 16, 20, 171, 345) // #22 - Volume Bar 4
1407
SpriteFrame(0, 0, 20, 20, 171, 345) // #23 - Volume Bar 5
1408
SpriteFrame(0, 0, 24, 20, 171, 345) // #24 - Volume Bar 6
1409
SpriteFrame(0, 0, 28, 20, 171, 345) // #25 - Volume Bar 7
1410
SpriteFrame(0, 0, 32, 20, 171, 345) // #26 - Volume Bar 8
1411
SpriteFrame(0, 0, 36, 20, 171, 345) // #27 - Volume Bar 9
1412
SpriteFrame(0, 0, 38, 20, 171, 345) // #28 - Volume Bar 10
1413
SpriteFrame(0, 0, 48, 48, 210, 324) // #29 - S2 Spin Dash
1414
SpriteFrame(0, 0, 48, 48, 210, 373) // #30 - CD Spin Dash
1415
SpriteFrame(0, 0, 128, 16, 1, 256) // #31 - Music
1416
SpriteFrame(0, 0, 128, 16, 130, 256) // #32 - Music Highlight
1417
SpriteFrame(0, 0, 128, 16, 1, 273) // #32 - SFX
1418
SpriteFrame(0, 0, 128, 16, 130, 273) // #33 - SFX Highlight
1419
SpriteFrame(0, 0, 128, 16, 1, 307) // #34 - Spin Dash
1420
SpriteFrame(0, 0, 128, 16, 130, 307) // #35 - Spin Dash Highlight
1421
SpriteFrame(0, 0, 88, 8, 259, 44) // #36 - Genesis
1422
SpriteFrame(0, 0, 88, 8, 259, 35) // #37 - Original
1423
SpriteFrame(0, 0, 48, 48, 405, 88) // #38 - Icon Border
1424
SpriteFrame(0, 0, 48, 48, 119, 324) // #39 - S2 Spin Dash Highlight
1425
SpriteFrame(0, 0, 48, 48, 119, 373) // #40 - CD Spin Dash Highlight
1426
end sub
1427
1428
1429
// ========================
1430
// Editor Subs
1431
// ========================
1432
1433
sub RSDKDraw
1434
DrawSprite(0)
1435
end sub
1436
1437
1438
sub RSDKLoad
1439
LoadSpriteSheet("Menu/MenuGfx2_EN.gif")
1440
SpriteFrame(16, 0, 90, 30, 71, 677) // Options
1441
1442
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
1443
end sub
1444
1445