Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R5/TunnelPath2.txt
1319 views
1
//---------------Sonic CD Tunnel Path 2 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
8
// States
9
#alias 0 : TUNNELPATH_2_IDLE
10
#alias 1 : TUNNELPATH_2_ACTIVE
11
12
// Global SFX
13
#alias 7 : SFX_G_RELEASE
14
15
// Priority
16
#alias 0 : PRIORITY_BOUNDS
17
#alias 1 : PRIORITY_ACTIVE
18
19
20
sub ObjectMain
21
22
if Object.State == TUNNELPATH_2_ACTIVE
23
if Player.State == Player_State_Death
24
Object.State = TUNNELPATH_2_IDLE
25
end if
26
27
TempValue0 = Object.Timer
28
Object.Timer++
29
30
Player.Speed = Player.XPos
31
Player.Animation = ANI_JUMPING
32
Player.AnimationSpeed = 240
33
34
switch TempValue0
35
case 0
36
Player.XPos = 0x7600
37
Player.YPos = 0x3700
38
break
39
case 1
40
Player.XPos = 0x7600
41
Player.YPos = 0xA3700
42
break
43
case 2
44
Player.XPos = 0x7600
45
Player.YPos = 0x143700
46
break
47
case 3
48
Player.XPos = 0x7600
49
Player.YPos = 0x1E3700
50
break
51
case 4
52
Player.XPos = 0x7600
53
Player.YPos = 0x203700
54
break
55
case 5
56
Player.XPos = 0xA7600
57
Player.YPos = 0x243700
58
break
59
case 6
60
Player.XPos = 0x147600
61
Player.YPos = 0x283700
62
break
63
case 7
64
Player.XPos = 0x1E7600
65
Player.YPos = 0x2C3700
66
break
67
case 8
68
Player.XPos = 0x287600
69
Player.YPos = 0x303700
70
break
71
case 9
72
Player.XPos = 0x327600
73
Player.YPos = 0x343700
74
break
75
case 10
76
Player.XPos = 0x3C7600
77
Player.YPos = 0x383700
78
break
79
case 11
80
Player.XPos = 0x467600
81
Player.YPos = 0x3C3700
82
break
83
case 12
84
Player.XPos = 0x507600
85
Player.YPos = 0x403700
86
break
87
case 13
88
Player.XPos = 0x467600
89
Player.YPos = 0x42B700
90
break
91
case 14
92
Player.XPos = 0x3C7600
93
Player.YPos = 0x453700
94
break
95
case 15
96
Player.XPos = 0x327600
97
Player.YPos = 0x47B700
98
break
99
case 16
100
Player.XPos = 0x287600
101
Player.YPos = 0x4A3700
102
break
103
case 17
104
Player.XPos = 0x1E7600
105
Player.YPos = 0x4CB700
106
break
107
case 18
108
Player.XPos = 0x147600
109
Player.YPos = 0x4F3700
110
break
111
case 19
112
Player.XPos = 0xA7600
113
Player.YPos = 0x51B700
114
break
115
case 20
116
Player.XPos = 0x7600
117
Player.YPos = 0x543700
118
break
119
case 21
120
Player.XPos = -0x98A00
121
Player.YPos = 0x56B700
122
break
123
case 22
124
Player.XPos = -0x138A00
125
Player.YPos = 0x593700
126
break
127
case 23
128
Player.XPos = -0x1D8A00
129
Player.YPos = 0x5BB700
130
break
131
case 24
132
Player.XPos = -0x278A00
133
Player.YPos = 0x5E3700
134
break
135
case 25
136
Player.XPos = -0x2F8A00
137
Player.YPos = 0x603700
138
break
139
case 26
140
Player.XPos = -0x258A00
141
Player.YPos = 0x62B700
142
break
143
case 27
144
Player.XPos = -0x1B8A00
145
Player.YPos = 0x653700
146
break
147
case 28
148
Player.XPos = -0x118A00
149
Player.YPos = 0x67B700
150
break
151
case 29
152
Player.XPos = -0x78A00
153
Player.YPos = 0x6A3700
154
break
155
case 30
156
Player.XPos = 0x27600
157
Player.YPos = 0x6CB700
158
break
159
case 31
160
Player.XPos = 0xC7600
161
Player.YPos = 0x6F3700
162
break
163
case 32
164
Player.XPos = 0x167600
165
Player.YPos = 0x71B700
166
break
167
case 33
168
Player.XPos = 0x207600
169
Player.YPos = 0x743700
170
break
171
case 34
172
Player.XPos = 0x2A7600
173
Player.YPos = 0x76B700
174
break
175
case 35
176
Player.XPos = 0x347600
177
Player.YPos = 0x793700
178
break
179
case 36
180
Player.XPos = 0x3E7600
181
Player.YPos = 0x7BB700
182
break
183
case 37
184
Player.XPos = 0x487600
185
Player.YPos = 0x7E3700
186
break
187
case 38
188
Player.XPos = 0x507600
189
Player.YPos = 0x803700
190
break
191
case 39
192
Player.XPos = 0x467600
193
Player.YPos = 0x82B700
194
break
195
case 40
196
Player.XPos = 0x3C7600
197
Player.YPos = 0x853700
198
break
199
case 41
200
Player.XPos = 0x327600
201
Player.YPos = 0x87B700
202
break
203
case 42
204
Player.XPos = 0x287600
205
Player.YPos = 0x8A3700
206
break
207
case 43
208
Player.XPos = 0x1E7600
209
Player.YPos = 0x8CB700
210
break
211
case 44
212
Player.XPos = 0x147600
213
Player.YPos = 0x8F3700
214
break
215
case 45
216
Player.XPos = 0xA7600
217
Player.YPos = 0x91B700
218
break
219
case 46
220
Player.XPos = 0x7600
221
Player.YPos = 0x943700
222
break
223
case 47
224
Player.XPos = -0x98A00
225
Player.YPos = 0x96B700
226
break
227
case 48
228
Player.XPos = -0x138A00
229
Player.YPos = 0x993700
230
break
231
case 49
232
Player.XPos = -0x1D8A00
233
Player.YPos = 0x9BB700
234
break
235
case 50
236
Player.XPos = -0x278A00
237
Player.YPos = 0x9E3700
238
break
239
case 51
240
Player.XPos = -0x2F8A00
241
Player.YPos = 0xA03700
242
break
243
case 52
244
Player.XPos = -0x258A00
245
Player.YPos = 0xA2B700
246
break
247
case 53
248
Player.XPos = -0x1B8A00
249
Player.YPos = 0xA53700
250
break
251
case 54
252
Player.XPos = -0x118A00
253
Player.YPos = 0xA7B700
254
break
255
case 55
256
Player.XPos = -0x78A00
257
Player.YPos = 0xAA3700
258
break
259
case 56
260
Player.XPos = 0x27600
261
Player.YPos = 0xACB700
262
break
263
case 57
264
Player.XPos = 0xC7600
265
Player.YPos = 0xAF3700
266
break
267
case 58
268
Player.XPos = 0x167600
269
Player.YPos = 0xB1B700
270
break
271
case 59
272
Player.XPos = 0x207600
273
Player.YPos = 0xB43700
274
break
275
case 60
276
Player.XPos = 0x2A7600
277
Player.YPos = 0xB6B700
278
break
279
case 61
280
Player.XPos = 0x347600
281
Player.YPos = 0xB93700
282
break
283
case 62
284
Player.XPos = 0x3E7600
285
Player.YPos = 0xBBB700
286
break
287
case 63
288
Player.XPos = 0x487600
289
Player.YPos = 0xBE3700
290
break
291
case 64
292
Player.XPos = 0x507600
293
Player.YPos = 0xC03700
294
break
295
case 65
296
Player.XPos = 0x467600
297
Player.YPos = 0xC2B700
298
break
299
case 66
300
Player.XPos = 0x3C7600
301
Player.YPos = 0xC53700
302
break
303
case 67
304
Player.XPos = 0x327600
305
Player.YPos = 0xC7B700
306
break
307
case 68
308
Player.XPos = 0x287600
309
Player.YPos = 0xCA3700
310
break
311
case 69
312
Player.XPos = 0x1E7600
313
Player.YPos = 0xCCB700
314
break
315
case 70
316
Player.XPos = 0x147600
317
Player.YPos = 0xCF3700
318
break
319
case 71
320
Player.XPos = 0xA7600
321
Player.YPos = 0xD1B700
322
break
323
case 72
324
Player.XPos = 0x7600
325
Player.YPos = 0xD43700
326
break
327
case 73
328
Player.XPos = -0x98A00
329
Player.YPos = 0xD6B700
330
break
331
case 74
332
Player.XPos = -0x138A00
333
Player.YPos = 0xD93700
334
break
335
case 75
336
Player.XPos = -0x1D8A00
337
Player.YPos = 0xDBB700
338
break
339
case 76
340
Player.XPos = -0x278A00
341
Player.YPos = 0xDE3700
342
break
343
case 77
344
Player.XPos = -0x2F8A00
345
Player.YPos = 0xE03700
346
break
347
case 78
348
Player.XPos = -0x258A00
349
Player.YPos = 0xE41A00
350
break
351
case 79
352
Player.XPos = -0x1B8A00
353
Player.YPos = 0xE7FD00
354
break
355
case 80
356
Player.XPos = -0x118A00
357
Player.YPos = 0xEBE000
358
break
359
case 81
360
Player.XPos = -0x78A00
361
Player.YPos = 0xEFC300
362
break
363
case 82
364
Player.XPos = 0x27600
365
Player.YPos = 0xF3A600
366
break
367
case 83
368
Player.XPos = 0xC7600
369
Player.YPos = 0xF78900
370
break
371
case 84
372
Player.XPos = 0x167600
373
Player.YPos = 0xFB6C00
374
break
375
case 85
376
Player.XPos = 0x207600
377
Player.YPos = 0xFF4F00
378
break
379
case 86
380
Player.XPos = 0x2A7600
381
Player.YPos = 0x1033200
382
break
383
case 87
384
Player.XPos = 0x347600
385
Player.YPos = 0x1071500
386
break
387
case 88
388
Player.XPos = 0x3E7600
389
Player.YPos = 0x10AF800
390
break
391
case 89
392
Player.XPos = 0x487600
393
Player.YPos = 0x10EDB00
394
break
395
case 90
396
Player.XPos = 0x527600
397
Player.YPos = 0x112BE00
398
break
399
case 91
400
Player.XPos = 0x5C7600
401
Player.YPos = 0x116A100
402
break
403
case 92
404
Player.XPos = 0x607600
405
Player.YPos = 0x118A100
406
break
407
case 93
408
Player.XPos = 0x607600
409
Player.YPos = 0x122A100
410
break
411
case 94
412
Player.XPos = 0x607600
413
Player.YPos = 0x12CA100
414
break
415
case 95
416
Player.XPos = 0x607600
417
Player.YPos = 0x136A100
418
break
419
case 96
420
Player.XPos = 0x607600
421
Player.YPos = 0x138A100
422
break
423
case 97
424
Player.XPos = 0x657600
425
Player.YPos = 0x142A100
426
break
427
case 98
428
Player.XPos = 0x657600
429
Player.YPos = 0x14CD900
430
break
431
case 99
432
Player.XPos = 0x657600
433
Player.YPos = 0x1574900
434
break
435
case 100
436
Player.XPos = 0x657600
437
Player.YPos = 0x161F100
438
439
Object.State = TUNNELPATH_2_IDLE
440
Object.Priority = PRIORITY_BOUNDS
441
442
Player.XVelocity = 0
443
Player.Speed = 0
444
Player.YVelocity = 0x60000
445
446
#platform: Use_Origins
447
Player.State = Player_State_Air_NoDropDash
448
#endplatform
449
450
#platform: Use_Standalone
451
Player.State = Player_State_Air
452
#endplatform
453
454
Player.ObjectInteraction = true
455
break
456
457
end switch
458
459
Player.XPos += Object.XPos
460
Player.YPos += Object.YPos
461
462
if Object.State > TUNNELPATH_2_IDLE
463
Player.Speed -= Player.XPos
464
FlipSign(Player.Speed)
465
end if
466
end if
467
468
end sub
469
470
471
sub ObjectPlayerInteraction
472
473
if Object.PropertyValue == 0
474
if Player.State != Player_State_Static
475
PlayerObjectCollision(C_TOUCH, -8, -16, 8, 16)
476
if CheckResult == true
477
Player.State = Player_State_Static
478
Player.ObjectInteraction = false
479
480
Object.State = TUNNELPATH_2_ACTIVE
481
Object.Timer = 0
482
Object.Priority = PRIORITY_ACTIVE
483
484
PlaySfx(SFX_G_RELEASE, false)
485
end if
486
end if
487
end if
488
489
end sub
490
491
492
// ========================
493
// Editor Subs
494
// ========================
495
496
sub RSDKDraw
497
DrawSprite(0)
498
499
//#platform: DUMMY
500
if Editor.ShowGizmos == true
501
TempValue2 = 0
502
while TempValue2 < 100
503
switch TempValue2
504
case 0
505
TempValue0 = 30208
506
TempValue1 = 14080
507
break
508
509
case 1
510
TempValue0 = 30208
511
TempValue1 = 669440
512
break
513
514
case 2
515
TempValue0 = 30208
516
TempValue1 = 1324800
517
break
518
519
case 3
520
TempValue0 = 30208
521
TempValue1 = 1980160
522
break
523
524
case 4
525
TempValue0 = 30208
526
TempValue1 = 2111232
527
break
528
529
case 5
530
TempValue0 = 685568
531
TempValue1 = 2373376
532
break
533
534
case 6
535
TempValue0 = 1340928
536
TempValue1 = 2635520
537
break
538
539
case 7
540
TempValue0 = 1996288
541
TempValue1 = 2897664
542
break
543
544
case 8
545
TempValue0 = 2651648
546
TempValue1 = 3159808
547
break
548
549
case 9
550
TempValue0 = 3307008
551
TempValue1 = 3421952
552
break
553
554
case 10
555
TempValue0 = 3962368
556
TempValue1 = 3684096
557
break
558
559
case 11
560
TempValue0 = 4617728
561
TempValue1 = 3946240
562
break
563
564
case 12
565
TempValue0 = 5273088
566
TempValue1 = 4208384
567
break
568
569
case 13
570
TempValue0 = 4617728
571
TempValue1 = 4372224
572
break
573
574
case 14
575
TempValue0 = 3962368
576
TempValue1 = 4536064
577
break
578
579
case 15
580
TempValue0 = 3307008
581
TempValue1 = 4699904
582
break
583
584
case 16
585
TempValue0 = 2651648
586
TempValue1 = 4863744
587
break
588
589
case 17
590
TempValue0 = 1996288
591
TempValue1 = 5027584
592
break
593
594
case 18
595
TempValue0 = 1340928
596
TempValue1 = 5191424
597
break
598
599
case 19
600
TempValue0 = 685568
601
TempValue1 = 5355264
602
break
603
604
case 20
605
TempValue0 = 30208
606
TempValue1 = 5519104
607
break
608
609
case 21
610
TempValue0 = -625152
611
TempValue1 = 5682944
612
break
613
614
case 22
615
TempValue0 = -1280512
616
TempValue1 = 5846784
617
break
618
619
case 23
620
TempValue0 = -1935872
621
TempValue1 = 6010624
622
break
623
624
case 24
625
TempValue0 = -2591232
626
TempValue1 = 6174464
627
break
628
629
case 25
630
TempValue0 = -3115520
631
TempValue1 = 6305536
632
break
633
634
case 26
635
TempValue0 = -2460160
636
TempValue1 = 6469376
637
break
638
639
case 27
640
TempValue0 = -1804800
641
TempValue1 = 6633216
642
break
643
644
case 28
645
TempValue0 = -1149440
646
TempValue1 = 6797056
647
break
648
649
case 29
650
TempValue0 = -494080
651
TempValue1 = 6960896
652
break
653
654
case 30
655
TempValue0 = 161280
656
TempValue1 = 7124736
657
break
658
659
case 31
660
TempValue0 = 816640
661
TempValue1 = 7288576
662
break
663
664
case 32
665
TempValue0 = 1472000
666
TempValue1 = 7452416
667
break
668
669
case 33
670
TempValue0 = 2127360
671
TempValue1 = 7616256
672
break
673
674
case 34
675
TempValue0 = 2782720
676
TempValue1 = 7780096
677
break
678
679
case 35
680
TempValue0 = 3438080
681
TempValue1 = 7943936
682
break
683
684
case 36
685
TempValue0 = 4093440
686
TempValue1 = 8107776
687
break
688
689
case 37
690
TempValue0 = 4748800
691
TempValue1 = 8271616
692
break
693
694
case 38
695
TempValue0 = 5273088
696
TempValue1 = 8402688
697
break
698
699
case 39
700
TempValue0 = 4617728
701
TempValue1 = 8566528
702
break
703
704
case 40
705
TempValue0 = 3962368
706
TempValue1 = 8730368
707
break
708
709
case 41
710
TempValue0 = 3307008
711
TempValue1 = 8894208
712
break
713
714
case 42
715
TempValue0 = 2651648
716
TempValue1 = 9058048
717
break
718
719
case 43
720
TempValue0 = 1996288
721
TempValue1 = 9221888
722
break
723
724
case 44
725
TempValue0 = 1340928
726
TempValue1 = 9385728
727
break
728
729
case 45
730
TempValue0 = 685568
731
TempValue1 = 9549568
732
break
733
734
case 46
735
TempValue0 = 30208
736
TempValue1 = 9713408
737
break
738
739
case 47
740
TempValue0 = -625152
741
TempValue1 = 9877248
742
break
743
744
case 48
745
TempValue0 = -1280512
746
TempValue1 = 10041088
747
break
748
749
case 49
750
TempValue0 = -1935872
751
TempValue1 = 10204928
752
break
753
754
case 50
755
TempValue0 = -2591232
756
TempValue1 = 10368768
757
break
758
759
case 51
760
TempValue0 = -3115520
761
TempValue1 = 10499840
762
break
763
764
case 52
765
TempValue0 = -2460160
766
TempValue1 = 10663680
767
break
768
769
case 53
770
TempValue0 = -1804800
771
TempValue1 = 10827520
772
break
773
774
case 54
775
TempValue0 = -1149440
776
TempValue1 = 10991360
777
break
778
779
case 55
780
TempValue0 = -494080
781
TempValue1 = 11155200
782
break
783
784
case 56
785
TempValue0 = 161280
786
TempValue1 = 11319040
787
break
788
789
case 57
790
TempValue0 = 816640
791
TempValue1 = 11482880
792
break
793
794
case 58
795
TempValue0 = 1472000
796
TempValue1 = 11646720
797
break
798
799
case 59
800
TempValue0 = 2127360
801
TempValue1 = 11810560
802
break
803
804
case 60
805
TempValue0 = 2782720
806
TempValue1 = 11974400
807
break
808
809
case 61
810
TempValue0 = 3438080
811
TempValue1 = 12138240
812
break
813
814
case 62
815
TempValue0 = 4093440
816
TempValue1 = 12302080
817
break
818
819
case 63
820
TempValue0 = 4748800
821
TempValue1 = 12465920
822
break
823
824
case 64
825
TempValue0 = 5273088
826
TempValue1 = 12596992
827
break
828
829
case 65
830
TempValue0 = 4617728
831
TempValue1 = 12760832
832
break
833
834
case 66
835
TempValue0 = 3962368
836
TempValue1 = 12924672
837
break
838
839
case 67
840
TempValue0 = 3307008
841
TempValue1 = 13088512
842
break
843
844
case 68
845
TempValue0 = 2651648
846
TempValue1 = 13252352
847
break
848
849
case 69
850
TempValue0 = 1996288
851
TempValue1 = 13416192
852
break
853
854
case 70
855
TempValue0 = 1340928
856
TempValue1 = 13580032
857
break
858
859
case 71
860
TempValue0 = 685568
861
TempValue1 = 13743872
862
break
863
864
case 72
865
TempValue0 = 30208
866
TempValue1 = 13907712
867
break
868
869
case 73
870
TempValue0 = -625152
871
TempValue1 = 14071552
872
break
873
874
case 74
875
TempValue0 = -1280512
876
TempValue1 = 14235392
877
break
878
879
case 75
880
TempValue0 = -1935872
881
TempValue1 = 14399232
882
break
883
884
case 76
885
TempValue0 = -2591232
886
TempValue1 = 14563072
887
break
888
889
case 77
890
TempValue0 = -3115520
891
TempValue1 = 14694144
892
break
893
894
case 78
895
TempValue0 = -2460160
896
TempValue1 = 14948864
897
break
898
899
case 79
900
TempValue0 = -1804800
901
TempValue1 = 15203584
902
break
903
904
case 80
905
TempValue0 = -1149440
906
TempValue1 = 15458304
907
break
908
909
case 81
910
TempValue0 = -494080
911
TempValue1 = 15713024
912
break
913
914
case 82
915
TempValue0 = 161280
916
TempValue1 = 15967744
917
break
918
919
case 83
920
TempValue0 = 816640
921
TempValue1 = 16222464
922
break
923
924
case 84
925
TempValue0 = 1472000
926
TempValue1 = 16477184
927
break
928
929
case 85
930
TempValue0 = 2127360
931
TempValue1 = 16731904
932
break
933
934
case 86
935
TempValue0 = 2782720
936
TempValue1 = 16986624
937
break
938
939
case 87
940
TempValue0 = 3438080
941
TempValue1 = 17241344
942
break
943
944
case 88
945
TempValue0 = 4093440
946
TempValue1 = 17496064
947
break
948
949
case 89
950
TempValue0 = 4748800
951
TempValue1 = 17750784
952
break
953
954
case 90
955
TempValue0 = 5404160
956
TempValue1 = 18005504
957
break
958
959
case 91
960
TempValue0 = 6059520
961
TempValue1 = 18260224
962
break
963
964
case 92
965
TempValue0 = 6321664
966
TempValue1 = 18391296
967
break
968
969
case 93
970
TempValue0 = 6321664
971
TempValue1 = 19046656
972
break
973
974
case 94
975
TempValue0 = 6321664
976
TempValue1 = 19702016
977
break
978
979
case 95
980
TempValue0 = 6321664
981
TempValue1 = 20357376
982
break
983
984
case 96
985
TempValue0 = 6321664
986
TempValue1 = 20488448
987
break
988
989
case 97
990
TempValue0 = 6649344
991
TempValue1 = 21143808
992
break
993
994
case 98
995
TempValue0 = 6649344
996
TempValue1 = 21813504
997
break
998
999
case 99
1000
TempValue0 = 6649344
1001
TempValue1 = 22497536
1002
break
1003
1004
case 100
1005
TempValue0 = 6649344
1006
TempValue1 = 23195904
1007
break
1008
1009
end switch
1010
1011
TempValue0 += Object.XPos
1012
TempValue1 += Object.YPos
1013
1014
DrawRectWorld(TempValue0, TempValue1, 4, 4, 255, 255, 255, 255)
1015
1016
TempValue2++
1017
loop
1018
end if
1019
//#endplatform
1020
end sub
1021
1022
1023
sub RSDKLoad
1024
LoadSpriteSheet("Global/Display.gif")
1025
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
1026
1027
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
1028
end sub
1029
1030