Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/Secrets/SoundTest.txt
1319 views
1
//-----------------Sonic CD Sound Test Script-----------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object.Value0 : Object.FadeValue
7
#alias Object.Value1 : Object.AudioType
8
#alias Object.Value2 : Object.HoldButtonTimer
9
#alias Object.Value3 : Object.PCMNumber
10
#alias Object.Value4 : Object.DANumber
11
#alias Object.Value5 : Object.ButtonTouched
12
#alias Object.Value6 : Object.PlayButtonCooldown
13
#alias Object.Value7 : Object.SecretImage
14
15
// States
16
#alias 0 : SOUNDTEST_SETUP
17
#alias 1 : SOUNDTEST_FADE_IN
18
#alias 2 : SOUNDTEST_CONTROLS
19
#alias 3 : SOUNDTEST_EXIT
20
#alias 4 : SOUNDTEST_SECRET_IMAGE
21
#alias 5 : SOUNDTEST_SECRET_MESSAGE
22
#alias 6 : SOUNDTEST_SPECIAL_STAGE
23
24
// Presentation Stages
25
#alias 1 : STAGE_P_MENU
26
27
// Special Stages
28
#alias 7 : STAGE_S_SS8
29
30
// Players
31
#alias 1 : PLAYER_TAILS_A
32
33
// Global SFX
34
#alias 19 : SFX_G_SPECIALWARP
35
#alias 27 : SFX_G_SELECT
36
37
// Stage SFX
38
#alias 41 : SFX_S_EVENT
39
40
// Engine & CallBacks
41
#alias 2 : MESSAGE_LOSTFOCUS
42
43
// Device Type
44
#alias 1 : RETRO_MOBILE
45
46
// Game Mode Aliases
47
#alias 0 : MODE_NOSAVE
48
49
// Function Declarations
50
#function SoundTest_PlayTrack
51
#function SoundTest_CheckSecret
52
53
54
function SoundTest_PlayTrack
55
StopMusic()
56
switch Object.DANumber
57
case 0
58
SetMusicTrack("JP/R1A.ogg", 0, 142428)
59
SetMusicTrack("US/R1A.ogg", 1, 153038)
60
break
61
62
case 1
63
SetMusicTrack("R1B.ogg", 0, 354890)
64
SetMusicTrack("R1B.ogg", 1, 354890)
65
break
66
67
case 2
68
SetMusicTrack("JP/R1C.ogg", 0, 142902)
69
SetMusicTrack("US/R1C.ogg", 1, 152346)
70
break
71
72
case 3
73
SetMusicTrack("JP/R1D.ogg", 0, true)
74
SetMusicTrack("US/R1D.ogg", 1, 774998)
75
break
76
77
case 4
78
SetMusicTrack("JP/R3A.ogg", 0, 358725)
79
SetMusicTrack("US/R3A.ogg", 1, true)
80
break
81
82
case 5
83
SetMusicTrack("R3B.ogg", 0, 166278)
84
SetMusicTrack("R3B.ogg", 1, 166278)
85
break
86
87
case 6
88
SetMusicTrack("JP/R3C.ogg", 0, true)
89
SetMusicTrack("US/R3C.ogg", 1, 173494)
90
break
91
92
case 7
93
SetMusicTrack("JP/R3D.ogg", 0, 717648)
94
SetMusicTrack("US/R3D.ogg", 1, true)
95
break
96
97
case 8
98
SetMusicTrack("JP/R4A.ogg", 0, true)
99
SetMusicTrack("US/R4A.ogg", 1, 415148)
100
break
101
102
case 9
103
SetMusicTrack("R4B.ogg", 0, true)
104
SetMusicTrack("R4B.ogg", 1, true)
105
break
106
107
case 10
108
SetMusicTrack("JP/R4C.ogg", 0, true)
109
SetMusicTrack("US/R4C.ogg", 1, true)
110
break
111
112
case 11
113
SetMusicTrack("JP/R4D.ogg", 0, true)
114
SetMusicTrack("US/R4D.ogg", 1, 145616)
115
break
116
117
case 12
118
SetMusicTrack("JP/R5A.ogg", 0, true)
119
SetMusicTrack("US/R5A.ogg", 1, true)
120
break
121
122
case 13
123
SetMusicTrack("R5B.ogg", 0, 619562)
124
SetMusicTrack("R5B.ogg", 1, 619562)
125
break
126
127
case 14
128
SetMusicTrack("JP/R5C.ogg", 0, 367046)
129
SetMusicTrack("US/R5C.ogg", 1, 705830)
130
break
131
132
case 15
133
SetMusicTrack("JP/R5D.ogg", 0, true)
134
SetMusicTrack("US/R5D.ogg", 1, 93672)
135
break
136
137
case 16
138
SetMusicTrack("JP/R6A.ogg", 0, true)
139
SetMusicTrack("US/R6A.ogg", 1, 926048)
140
break
141
142
case 17
143
SetMusicTrack("R6B.ogg", 0, true)
144
SetMusicTrack("R6B.ogg", 1, true)
145
break
146
147
case 18
148
SetMusicTrack("JP/R6C.ogg", 0, true)
149
SetMusicTrack("US/R6C.ogg", 1, 181704)
150
break
151
152
case 19
153
SetMusicTrack("JP/R6D.ogg", 0, true)
154
SetMusicTrack("US/R6D.ogg", 1, 45355)
155
break
156
157
case 20
158
SetMusicTrack("JP/R7A.ogg", 0, true)
159
SetMusicTrack("US/R7A.ogg", 1, 617728)
160
break
161
162
case 21
163
SetMusicTrack("R7B.ogg", 0, 730678)
164
SetMusicTrack("R7B.ogg", 1, 730678)
165
break
166
167
case 22
168
SetMusicTrack("JP/R7C.ogg", 0, 103060)
169
SetMusicTrack("US/R7C.ogg", 1, 136670)
170
break
171
172
case 23
173
SetMusicTrack("JP/R7D.ogg", 0, true)
174
SetMusicTrack("US/R7D.ogg", 1, 92324)
175
break
176
177
case 24
178
SetMusicTrack("JP/R8A.ogg", 0, 146030)
179
SetMusicTrack("US/R8A.ogg", 1, true)
180
break
181
182
case 25
183
SetMusicTrack("R8B.ogg", 0, 145748)
184
SetMusicTrack("R8B.ogg", 1, 145748)
185
break
186
187
case 26
188
SetMusicTrack("JP/R8C.ogg", 0, true)
189
SetMusicTrack("US/R8C.ogg", 1, true)
190
break
191
192
case 27
193
SetMusicTrack("JP/R8D.ogg", 0, true)
194
SetMusicTrack("US/R8D.ogg", 1, 563962)
195
break
196
197
case 28
198
SetMusicTrack("JP/Boss.ogg", 0, true)
199
SetMusicTrack("US/Boss.ogg", 1, 196526)
200
break
201
202
case 29
203
SetMusicTrack("JP/FinalBoss.ogg", 0, true)
204
SetMusicTrack("US/FinalBoss.ogg", 1, true)
205
break
206
207
case 30
208
SetMusicTrack("JP/TitleScreen.ogg", 0, false)
209
SetMusicTrack("US/TitleScreen.ogg", 1, false)
210
break
211
212
case 31
213
SetMusicTrack("JP/ZoneComplete.ogg", 0, false)
214
SetMusicTrack("US/ZoneComplete.ogg", 1, false)
215
break
216
217
case 32
218
SetMusicTrack("JP/SpeedShoes.ogg", 0, false)
219
SetMusicTrack("US/SpeedShoes.ogg", 1, false)
220
break
221
222
case 33
223
SetMusicTrack("JP/Invincibility.ogg", 0, false)
224
SetMusicTrack("US/Invincibility.ogg", 1, false)
225
break
226
227
case 34
228
SetMusicTrack("JP/GameOver.ogg", 0, false)
229
SetMusicTrack("US/GameOver.ogg", 1, false)
230
break
231
232
case 35
233
SetMusicTrack("JP/SpecialStage.ogg", 0, true)
234
SetMusicTrack("US/SpecialStage.ogg", 1, 270972)
235
break
236
237
case 36
238
SetMusicTrack("JP/DAGarden.ogg", 0, true)
239
SetMusicTrack("US/DAGarden.ogg", 1, 117382)
240
break
241
242
case 37
243
SetMusicTrack("JP/TimeAttack.ogg", 0, 100512)
244
SetMusicTrack("US/DAGarden.ogg", 1, 117382)
245
break
246
247
end switch
248
249
PlayMusic(Options.Soundtrack)
250
end function
251
252
253
function SoundTest_CheckSecret
254
if Object.PCMNumber == 4
255
if Object.DANumber == 21
256
StopMusic()
257
SetMusicTrack("JP/FinalBoss.ogg", 0, 1)
258
SetMusicTrack("US/FinalBoss.ogg", 1, 1)
259
Object.SecretImage = 0 // Batman Parody
260
Object.State = SOUNDTEST_SECRET_IMAGE
261
end if
262
end if
263
264
if Object.PCMNumber == 12
265
if Object.DANumber == 25
266
StopMusic()
267
SetMusicTrack("JP/Boss.ogg", 0, 1)
268
SetMusicTrack("US/Boss.ogg", 1, 196526)
269
Object.SecretImage = 1 // Fun is Infinite...
270
Object.State = SOUNDTEST_SECRET_IMAGE
271
end if
272
end if
273
274
if Object.PCMNumber == 11
275
if Object.DANumber == 9
276
StopMusic()
277
SetMusicTrack("JP/R1C.ogg", 0, 142902)
278
SetMusicTrack("US/R1C.ogg", 1, 152346)
279
Object.SecretImage = 2 // You Are Cool!
280
Object.State = SOUNDTEST_SECRET_IMAGE
281
end if
282
end if
283
284
if Object.PCMNumber == 3
285
if Object.DANumber == 1
286
StopMusic()
287
SetMusicTrack("JP/R8A.ogg", 0, 146030)
288
SetMusicTrack("US/R8A.ogg", 1, true)
289
Object.SecretImage = 3 // Fastest DJ Alive
290
Object.State = SOUNDTEST_SECRET_IMAGE
291
end if
292
end if
293
294
if Object.PCMNumber == 12
295
if Object.DANumber == 11
296
StopMusic()
297
SetMusicTrack("JP/R5C.ogg", 0, 367046)
298
SetMusicTrack("US/R5C.ogg", 1, 705830)
299
Stage.DebugMode = true
300
Object.SecretImage = 4 // See You Next Game
301
Object.State = SOUNDTEST_SECRET_IMAGE
302
end if
303
end if
304
305
if Object.PCMNumber == 32
306
if Object.DANumber == 8
307
StopMusic()
308
SetMusicTrack("JP/R5C.ogg", 0, 367046)
309
SetMusicTrack("US/R5C.ogg", 1, 705830)
310
Stage.PlayerListPos = PLAYER_TAILS_A
311
Object.SecretImage = 5 // Desert Dazzle "preview"
312
Object.State = SOUNDTEST_SECRET_IMAGE
313
end if
314
end if
315
316
if Object.PCMNumber == 7
317
if Object.DANumber == 7
318
// Load the secret Robotnik Special Stage
319
320
StopMusic()
321
PlayStageSfx(SFX_S_EVENT, false)
322
Object.State = SOUNDTEST_SECRET_MESSAGE
323
SetupMenu(MENU_1, 0, 3, 1)
324
AddMenuEntry(MENU_1, "WELCOME TO THE SECRET SPECIAL STAGE", 1)
325
CreateTempObject(TypeName[Message Text], 0, Object.XPos, Object.YPos)
326
Object[TempObjectPos].iXPos = Screen.CenterX
327
Object[TempObjectPos].XPos += 0x20000 // Move it 2 pixels below the Sound Test obejct
328
Object[TempObjectPos].iYPos = 152
329
end if
330
end if
331
end function
332
333
334
sub ObjectMain
335
switch Object.State
336
case SOUNDTEST_SETUP
337
if Object.FadeValue < 8
338
Object.FadeValue++
339
else
340
Object.FadeValue = 254
341
Object.State++
342
end if
343
SetScreenFade(0, 0, 0, 255)
344
break
345
346
case SOUNDTEST_FADE_IN
347
if Object.FadeValue > 0
348
SetScreenFade(0, 0, 0, Object.FadeValue)
349
Object.FadeValue -= 8
350
else
351
Object.State++
352
end if
353
break
354
355
case SOUNDTEST_CONTROLS
356
if Object.PlayButtonCooldown > 0
357
Object.PlayButtonCooldown--
358
end if
359
360
if Object.AudioType == 0
361
if KeyPress[0].Up == true
362
Object.HoldButtonTimer = 0
363
Object.PCMNumber--
364
if Object.PCMNumber < 0
365
Object.PCMNumber = 69
366
end if
367
else
368
if KeyPress[0].Down == true
369
Object.HoldButtonTimer = 0
370
Object.PCMNumber++
371
if Object.PCMNumber > 69
372
Object.PCMNumber = 0
373
end if
374
end if
375
end if
376
377
if KeyDown[0].Up == true
378
Object.HoldButtonTimer++
379
if Object.HoldButtonTimer == 8
380
Object.HoldButtonTimer = 0
381
Object.PCMNumber--
382
if Object.PCMNumber < 0
383
Object.PCMNumber = 69
384
end if
385
end if
386
else
387
if KeyDown[0].Down == true
388
Object.HoldButtonTimer++
389
if Object.HoldButtonTimer == 8
390
Object.HoldButtonTimer = 0
391
Object.PCMNumber++
392
if Object.PCMNumber > 69
393
Object.PCMNumber = 0
394
end if
395
end if
396
end if
397
end if
398
399
if KeyPress[0].Left == true
400
Object.AudioType = 1
401
end if
402
403
if KeyPress[0].Right == true
404
Object.AudioType = 1
405
end if
406
407
#platform: Use_Standalone
408
TempValue0 = KeyPress[0].ButtonA
409
TempValue0 |= KeyPress[0].ButtonB
410
TempValue0 |= KeyPress[0].ButtonC
411
#endplatform
412
413
#platform: Use_Origins
414
TempValue0 = KeyPress[0].ButtonA
415
TempValue0 |= KeyPress[0].Start
416
TempValue0 |= KeyPress[0].ButtonC
417
#endplatform
418
419
if TempValue0 == true
420
CallFunction(SoundTest_CheckSecret)
421
if Object.State == SOUNDTEST_CONTROLS
422
TempValue2 = Object.PCMNumber
423
if TempValue2 >= 28
424
TempValue2 += 1
425
end if
426
PlaySfx(TempValue2, false)
427
StopMusic()
428
end if
429
end if
430
else
431
if KeyPress[0].Up == true
432
Object.HoldButtonTimer = 0
433
Object.DANumber--
434
if Object.DANumber < 0
435
Object.DANumber = 37
436
end if
437
else
438
if KeyPress[0].Down == true
439
Object.HoldButtonTimer = 0
440
Object.DANumber++
441
if Object.DANumber > 37
442
Object.DANumber = 0
443
end if
444
end if
445
end if
446
447
if KeyDown[0].Up == true
448
Object.HoldButtonTimer++
449
if Object.HoldButtonTimer == 8
450
Object.HoldButtonTimer = 0
451
Object.DANumber--
452
if Object.DANumber < 0
453
Object.DANumber = 37
454
end if
455
end if
456
else
457
if KeyDown[0].Down == true
458
Object.HoldButtonTimer++
459
if Object.HoldButtonTimer == 8
460
Object.HoldButtonTimer = 0
461
Object.DANumber++
462
if Object.DANumber > 37
463
Object.DANumber = 0
464
end if
465
end if
466
end if
467
end if
468
469
if KeyPress[0].Left == true
470
Object.AudioType = 0
471
end if
472
473
if KeyPress[0].Right == true
474
Object.AudioType = 0
475
end if
476
477
#platform: Use_Standalone
478
TempValue0 = KeyPress[0].ButtonA
479
TempValue0 |= KeyPress[0].ButtonB
480
TempValue0 |= KeyPress[0].ButtonC
481
#endplatform
482
483
#platform: Use_Origins
484
TempValue0 = KeyPress[0].ButtonA
485
TempValue0 |= KeyPress[0].Start
486
TempValue0 |= KeyPress[0].ButtonC
487
#endplatform
488
489
if TempValue0 == true
490
if Object.PlayButtonCoolDown == false
491
CallFunction(SoundTest_CheckSecret)
492
if Object.State == SOUNDTEST_CONTROLS
493
CallFunction(SoundTest_PlayTrack)
494
Object.PlayButtonCooldown = 60
495
end if
496
end if
497
end if
498
end if
499
500
#platform: Use_Standalone
501
if KeyPress[0].Start == true
502
CallFunction(SoundTest_CheckSecret)
503
if Object.State == SOUNDTEST_CONTROLS
504
StopMusic()
505
Object.State++
506
end if
507
end if
508
#endplatform
509
510
#platform: Use_Origins
511
if KeyPress[0].ButtonB == true
512
CallFunction(SoundTest_CheckSecret)
513
if Object.State == SOUNDTEST_CONTROLS
514
StopMusic()
515
Object.State++
516
end if
517
end if
518
519
if Engine.DeviceType == RETRO_MOBILE
520
TempValue0 = Screen.CenterX
521
TempValue0 -= 126
522
TempValue1 = Screen.CenterX
523
TempValue1 -= 66
524
CheckTouchRect(TempValue0, 20, TempValue1, 72)
525
if CheckResult > -1
526
Object.AudioType = 0
527
KeyDown[0].Up = true
528
Object.HoldButtonTimer++
529
if Object.HoldButtonTimer == 8
530
Object.HoldButtonTimer = 0
531
Object.PCMNumber--
532
if Object.PCMNumber < 0
533
Object.PCMNumber = 69
534
end if
535
end if
536
end if
537
538
CheckTouchRect(TempValue0, 134, TempValue1, 186)
539
if CheckResult > -1
540
Object.AudioType = 0
541
KeyDown[0].Down = true
542
Object.HoldButtonTimer++
543
if Object.HoldButtonTimer == 8
544
Object.HoldButtonTimer = 0
545
Object.PCMNumber++
546
if Object.PCMNumber > 69
547
Object.PCMNumber = 0
548
end if
549
end if
550
end if
551
552
TempValue0 = Screen.CenterX
553
TempValue0 += 66
554
TempValue1 = Screen.CenterX
555
TempValue1 += 126
556
CheckTouchRect(TempValue0, 20, TempValue1, 72)
557
if CheckResult > -1
558
Object.AudioType = 1
559
KeyDown[0].Up = true
560
Object.HoldButtonTimer++
561
if Object.HoldButtonTimer == 8
562
Object.HoldButtonTimer = 0
563
Object.DANumber--
564
if Object.DANumber < 0
565
Object.DANumber = 37
566
end if
567
end if
568
end if
569
570
CheckTouchRect(TempValue0, 134, TempValue1, 186)
571
if CheckResult > -1
572
Object.AudioType = 1
573
KeyDown[0].Down = true
574
Object.HoldButtonTimer++
575
if Object.HoldButtonTimer == 8
576
Object.HoldButtonTimer = 0
577
Object.DANumber++
578
if Object.DANumber > 37
579
Object.DANumber = 0
580
end if
581
end if
582
end if
583
584
if Engine.Message == MESSAGE_LOSTFOCUS
585
Object.ButtonTouched = false
586
end if
587
588
TempValue0 = Screen.CenterX
589
TempValue0 -= 22
590
TempValue1 = Screen.CenterX
591
TempValue1 += 22
592
CheckTouchRect(TempValue0, 116, TempValue1, 140)
593
if CheckResult > -1
594
Object.ButtonTouched = true
595
else
596
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
597
if CheckResult < 0
598
if Object.ButtonTouched == true
599
Object.ButtonTouched = false
600
CallFunction(SoundTest_CheckSecret)
601
if Object.State == SOUNDTEST_CONTROLS
602
if Object.AudioType == 0
603
TempValue2 = Object.PCMNumber
604
if TempValue2 >= 28
605
TempValue2 += 1
606
end if
607
PlaySfx(TempValue2, false)
608
else
609
if Object.PlayButtonCoolDown == 0
610
CallFunction(SoundTest_PlayTrack)
611
Object.PlayButtonCoolDown = 60
612
end if
613
end if
614
end if
615
end if
616
else
617
if Object.ButtonTouched == true
618
Object.ButtonTouched = false
619
end if
620
end if
621
end if
622
623
CheckTouchRect(TempValue0, 148, TempValue1, 172)
624
if CheckResult > -1
625
Object.ButtonTouched = 2
626
else
627
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
628
if CheckResult < 0
629
if Object.ButtonTouched == 2
630
Object.ButtonTouched = 0
631
StopMusic()
632
end if
633
else
634
if Object.ButtonTouched == 2
635
Object.ButtonTouched = 0
636
end if
637
end if
638
end if
639
640
CheckTouchRect(TempValue0, 180, TempValue1, 204)
641
if CheckResult > -1
642
Object.ButtonTouched = 3
643
else
644
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
645
if CheckResult < 0
646
if Object.ButtonTouched == 3
647
Object.ButtonTouched = 0
648
PlaySfx(SFX_G_SELECT, false)
649
Object.State++
650
StopMusic()
651
end if
652
else
653
if Object.ButtonTouched == 3
654
Object.ButtonTouched = 0
655
end if
656
end if
657
end if
658
end if
659
#endplatform
660
661
#platform: Mobile
662
TempValue0 = Screen.CenterX
663
TempValue0 -= 126
664
TempValue1 = Screen.CenterX
665
TempValue1 -= 66
666
CheckTouchRect(TempValue0, 20, TempValue1, 72)
667
if CheckResult > -1
668
Object.AudioType = 0
669
KeyDown[0].Up = true
670
Object.HoldButtonTimer++
671
if Object.HoldButtonTimer == 8
672
Object.HoldButtonTimer = 0
673
Object.PCMNumber--
674
if Object.PCMNumber < 0
675
Object.PCMNumber = 69
676
end if
677
end if
678
end if
679
680
CheckTouchRect(TempValue0, 134, TempValue1, 186)
681
if CheckResult > -1
682
Object.AudioType = 0
683
KeyDown[0].Down = true
684
Object.HoldButtonTimer++
685
if Object.HoldButtonTimer == 8
686
Object.HoldButtonTimer = 0
687
Object.PCMNumber++
688
if Object.PCMNumber > 69
689
Object.PCMNumber = 0
690
end if
691
end if
692
end if
693
694
TempValue0 = Screen.CenterX
695
TempValue0 += 66
696
TempValue1 = Screen.CenterX
697
TempValue1 += 126
698
CheckTouchRect(TempValue0, 20, TempValue1, 72)
699
if CheckResult > -1
700
Object.AudioType = 1
701
KeyDown[0].Up = true
702
Object.HoldButtonTimer++
703
if Object.HoldButtonTimer == 8
704
Object.HoldButtonTimer = 0
705
Object.DANumber--
706
if Object.DANumber < 0
707
Object.DANumber = 37
708
end if
709
end if
710
end if
711
712
CheckTouchRect(TempValue0, 134, TempValue1, 186)
713
if CheckResult > -1
714
Object.AudioType = 1
715
KeyDown[0].Down = true
716
Object.HoldButtonTimer++
717
if Object.HoldButtonTimer == 8
718
Object.HoldButtonTimer = 0
719
Object.DANumber++
720
if Object.DANumber > 37
721
Object.DANumber = 0
722
end if
723
end if
724
end if
725
726
if Engine.Message == MESSAGE_LOSTFOCUS
727
Object.ButtonTouched = 0
728
end if
729
730
TempValue0 = Screen.CenterX
731
TempValue0 -= 22
732
TempValue1 = Screen.CenterX
733
TempValue1 += 22
734
CheckTouchRect(TempValue0, 116, TempValue1, 140)
735
if CheckResult > -1
736
Object.ButtonTouched = 1
737
else
738
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
739
if CheckResult < 0
740
if Object.ButtonTouched == true
741
Object.ButtonTouched = false
742
CallFunction(SoundTest_CheckSecret)
743
if Object.State == SOUNDTEST_CONTROLS
744
if Object.AudioType == 0
745
PlaySfx(Object.PCMNumber, false)
746
else
747
if Object.PlayButtonCoolDown == false
748
CallFunction(SoundTest_PlayTrack)
749
Object.PlayButtonCooldown = 60
750
end if
751
end if
752
end if
753
end if
754
else
755
if Object.ButtonTouched == 1
756
Object.ButtonTouched = false
757
end if
758
end if
759
end if
760
761
CheckTouchRect(TempValue0, 148, TempValue1, 172)
762
if CheckResult > -1
763
Object.ButtonTouched = 2
764
else
765
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
766
if CheckResult < 0
767
if Object.ButtonTouched == 2
768
Object.ButtonTouched = 0
769
StopMusic()
770
end if
771
else
772
if Object.ButtonTouched == 2
773
Object.ButtonTouched = 0
774
end if
775
end if
776
end if
777
778
CheckTouchRect(TempValue0, 180, TempValue1, 204)
779
if CheckResult > -1
780
Object.ButtonTouched = 3
781
else
782
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
783
if CheckResult < 0
784
if Object.ButtonTouched == 3
785
Object.ButtonTouched = 0
786
PlaySfx(SFX_G_SELECT, false)
787
Object.State++
788
StopMusic()
789
end if
790
else
791
if Object.ButtonTouched == 3
792
Object.ButtonTouched = 0
793
end if
794
end if
795
end if
796
#endplatform
797
break
798
799
case SOUNDTEST_EXIT
800
if Object.FadeValue < 288
801
Object.FadeValue += 8
802
else
803
Options.GameMode = MODE_NOSAVE
804
Stage.ListPos = STAGE_P_MENU
805
LoadStage()
806
end if
807
808
TempValue0 = Object.FadeValue
809
if TempValue0 > 255
810
TempValue0 = 255
811
end if
812
SetScreenFade(0, 0, 0, TempValue0)
813
break
814
815
case SOUNDTEST_SECRET_IMAGE
816
if Object.FadeValue < 288
817
Object.FadeValue += 16
818
else
819
Object.Type = TypeName[Blank Object]
820
if Object.SecretImage > 4
821
CreateTempObject(TypeName[Secret Image 2], 0, Object.XPos, Object.YPos)
822
else
823
CreateTempObject(TypeName[Secret Image], Object.SecretImage, Object.XPos, Object.YPos)
824
end if
825
end if
826
SetScreenFade(0, 0, 0, Object.FadeValue)
827
break
828
829
case SOUNDTEST_SECRET_MESSAGE
830
if Object.FadeValue < 120
831
Object.FadeValue++
832
else
833
Object.FadeValue = 0
834
Object.State++
835
PlaySfx(SFX_G_SPECIALWARP, false)
836
end if
837
break
838
839
case SOUNDTEST_SPECIAL_STAGE
840
if Object.FadeValue < 1024
841
Object.FadeValue += 8
842
else
843
Object.Type = TypeName[Blank Object]
844
Fade_Colour = 208
845
Fade_Colour <<= 16
846
TempValue0 = 255
847
TempValue0 <<= 8
848
Fade_Colour += TempValue0
849
Fade_Colour += 224
850
Options.GameMode = MODE_NOSAVE
851
Stage.ActiveList = SPECIAL_STAGE
852
853
#platform: Use_Origins
854
Stage.ActiveList = 3
855
#endplatform
856
Stage.ListPos = STAGE_S_SS8
857
LoadStage()
858
end if
859
SetScreenFade(208, 255, 224, Object.FadeValue)
860
break
861
862
end switch
863
end sub
864
865
866
sub ObjectDraw
867
TempValue0 = 0
868
while TempValue0 < 240
869
TempValue1 = 0
870
while TempValue1 < Screen.XSize
871
DrawSpriteScreenXY(15, TempValue1, TempValue0)
872
TempValue1 += 224
873
loop
874
TempValue0 += 48
875
loop
876
DrawSpriteScreenXY(16, Screen.CenterX, 64)
877
878
TempValue0 = Screen.CenterX
879
TempValue0 -= 118
880
if Object.AudioType == 0
881
DrawSpriteScreenXY(11, TempValue0, 96)
882
else
883
DrawSpriteScreenXY(10, TempValue0, 96)
884
end if
885
886
TempValue0 += 56
887
TempValue1 = Object.PCMNumber
888
TempValue1 /= 10
889
DrawSpriteScreenXY(TempValue1, TempValue0, 96)
890
891
TempValue0 += 8
892
TempValue1 = Object.PCMNumber
893
TempValue1 %= 10
894
DrawSpriteScreenXY(TempValue1, TempValue0, 96)
895
896
TempValue0 += 102
897
if Object.AudioType == 1
898
DrawSpriteScreenXY(13, TempValue0, 96)
899
else
900
DrawSpriteScreenXY(12, TempValue0, 96)
901
end if
902
903
TempValue0 += 48
904
TempValue1 = Object.DANumber
905
TempValue1 /= 10
906
DrawSpriteScreenXY(TempValue1, TempValue0, 96)
907
908
TempValue0 += 8
909
TempValue1 = Object.DANumber
910
TempValue1 %= 10
911
DrawSpriteScreenXY(TempValue1, TempValue0, 96)
912
#platform: Use_Origins
913
if Engine.DeviceType == RETRO_MOBILE
914
if Object.State < 5
915
TempValue0 = Screen.CenterX
916
TempValue0 -= 96
917
918
if Object.AudioType == 0
919
if KeyDown[0].Up == true
920
DrawSpriteScreenXY(18, TempValue0, 48)
921
else
922
DrawSpriteScreenXY(17, TempValue0, 48)
923
end if
924
if KeyDown[0].Down == true
925
DrawSpriteScreenXY(20, TempValue0, 160)
926
else
927
DrawSpriteScreenXY(19, TempValue0, 160)
928
end if
929
else
930
DrawSpriteScreenXY(17, TempValue0, 48)
931
DrawSpriteScreenXY(19, TempValue0, 160)
932
end if
933
934
TempValue0 += 192
935
if Object.AudioType == 1
936
if KeyDown[0].Up == true
937
DrawSpriteScreenXY(18, TempValue0, 48)
938
else
939
DrawSpriteScreenXY(17, TempValue0, 48)
940
end if
941
if KeyDown[0].Down == true
942
DrawSpriteScreenXY(20, TempValue0, 160)
943
else
944
DrawSpriteScreenXY(19, TempValue0, 160)
945
end if
946
else
947
DrawSpriteScreenXY(17, TempValue0, 48)
948
DrawSpriteScreenXY(19, TempValue0, 160)
949
end if
950
951
TempValue0 = 128
952
if Object.ButtonTouched == 1
953
DrawSpriteScreenXY(22, Screen.CenterX, TempValue0)
954
else
955
DrawSpriteScreenXY(21, Screen.CenterX, TempValue0)
956
end if
957
958
TempValue0 += 32
959
if Object.ButtonTouched == 2
960
DrawSpriteScreenXY(24, Screen.CenterX, TempValue0)
961
else
962
DrawSpriteScreenXY(23, Screen.CenterX, TempValue0)
963
end if
964
965
TempValue0 += 32
966
if Object.ButtonTouched == 3
967
DrawSpriteScreenXY(26, Screen.CenterX, TempValue0)
968
else
969
DrawSpriteScreenXY(25, Screen.CenterX, TempValue0)
970
end if
971
end if
972
end if
973
#endplatform
974
975
#platform: Use_Standalone
976
#platform: Mobile
977
if Object.State < 5
978
TempValue0 = Screen.CenterX
979
TempValue0 -= 96
980
981
if Object.AudioType == 0
982
if KeyDown[0].Up == true
983
DrawSpriteScreenXY(18, TempValue0, 48)
984
else
985
DrawSpriteScreenXY(17, TempValue0, 48)
986
end if
987
if KeyDown[0].Down == true
988
DrawSpriteScreenXY(20, TempValue0, 160)
989
else
990
DrawSpriteScreenXY(19, TempValue0, 160)
991
end if
992
else
993
DrawSpriteScreenXY(17, TempValue0, 48)
994
DrawSpriteScreenXY(19, TempValue0, 160)
995
end if
996
997
TempValue0 += 192
998
if Object.AudioType == 1
999
if KeyDown[0].Up == true
1000
DrawSpriteScreenXY(18, TempValue0, 48)
1001
else
1002
DrawSpriteScreenXY(17, TempValue0, 48)
1003
end if
1004
if KeyDown[0].Down == true
1005
DrawSpriteScreenXY(20, TempValue0, 160)
1006
else
1007
DrawSpriteScreenXY(19, TempValue0, 160)
1008
end if
1009
else
1010
DrawSpriteScreenXY(17, TempValue0, 48)
1011
DrawSpriteScreenXY(19, TempValue0, 160)
1012
end if
1013
1014
TempValue0 = 128
1015
if Object.ButtonTouched == 1
1016
DrawSpriteScreenXY(22, Screen.CenterX, TempValue0)
1017
else
1018
DrawSpriteScreenXY(21, Screen.CenterX, TempValue0)
1019
end if
1020
1021
TempValue0 += 32
1022
if Object.ButtonTouched == 2
1023
DrawSpriteScreenXY(24, Screen.CenterX, TempValue0)
1024
else
1025
DrawSpriteScreenXY(23, Screen.CenterX, TempValue0)
1026
end if
1027
1028
TempValue0 += 32
1029
if Object.ButtonTouched == 3
1030
DrawSpriteScreenXY(26, Screen.CenterX, TempValue0)
1031
else
1032
DrawSpriteScreenXY(25, Screen.CenterX, TempValue0)
1033
end if
1034
end if
1035
#endplatform
1036
#endplatform
1037
end sub
1038
1039
1040
sub ObjectStartup
1041
LoadSpriteSheet("Secrets/SecretMenus.gif")
1042
SpriteFrame(0, 0, 8, 16, 1, 49) // #0 - 0
1043
SpriteFrame(0, 0, 8, 16, 10, 49) // #1 - 1
1044
SpriteFrame(0, 0, 8, 16, 19, 49) // #2 - 2
1045
SpriteFrame(0, 0, 8, 16, 28, 49) // #3 - 3
1046
SpriteFrame(0, 0, 8, 16, 1, 66) // #4 - 4
1047
SpriteFrame(0, 0, 8, 16, 10, 66) // #5 - 5
1048
SpriteFrame(0, 0, 8, 16, 19, 66) // #6 - 6
1049
SpriteFrame(0, 0, 8, 16, 28, 66) // #7 - 7
1050
SpriteFrame(0, 0, 8, 16, 1, 83) // #8 - 8
1051
SpriteFrame(0, 0, 8, 16, 10, 83) // #9 - 9
1052
SpriteFrame(0, 0, 56, 16, 136, 83) // #10 - PCM NO.
1053
SpriteFrame(0, 0, 56, 16, 136, 100) // #11 - PCM NO. Highlight
1054
SpriteFrame(0, 0, 48, 16, 193, 83) // #12 - DA NO.
1055
SpriteFrame(0, 0, 48, 16, 193, 100) // #13 - DA NO. Highlight
1056
SpriteFrame(0, 0, 8, 16, 19, 83) // #14 - "-"
1057
SpriteFrame(0, 0, 224, 48, 0, 0) // #15 - Background
1058
SpriteFrame(-40, 0, 96, 16, 136, 49) // #16 - Sound Test
1059
SpriteFrame(-10, -10, 20, 20, 136, 117) // #17 - Up Arrow
1060
SpriteFrame(-10, -10, 20, 20, 136, 138) // #18 - Up Arrow Highlight
1061
SpriteFrame(-10, -10, 20, 20, 157, 117) // #19 - Down Arrow
1062
SpriteFrame(-10, -10, 20, 20, 157, 138) // #20 - Down Arrow Highlight
1063
SpriteFrame(-20, -10, 40, 20, 200, 201) // #21 - Play Button
1064
SpriteFrame(-20, -10, 40, 20, 200, 222) // #22 - Play Button Highlight
1065
SpriteFrame(-20, -10, 40, 20, 159, 201) // #23 - Stop Button
1066
SpriteFrame(-20, -10, 40, 20, 159, 222) // #24 - Stop Button Highlight
1067
SpriteFrame(-20, -10, 40, 20, 200, 159) // #25 - Exit Button
1068
SpriteFrame(-20, -10, 40, 20, 200, 180) // #26 - Exit Button Highlight
1069
end sub
1070
1071
1072
// ========================
1073
// Editor Subs
1074
// ========================
1075
1076
sub RSDKDraw
1077
DrawSprite(0)
1078
end sub
1079
1080
1081
sub RSDKLoad
1082
LoadSpriteSheet("Secrets/SecretMenus.gif")
1083
SpriteFrame(-40, 0, 96, 16, 136, 49) // #0 - Sound Test
1084
1085
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
1086
end sub
1087
1088