Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R5/TunnelPath3.txt
1319 views
1
//---------------Sonic CD Tunnel Path 3 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_3_IDLE
10
#alias 1 : TUNNELPATH_3_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_3_ACTIVE
23
if Player.State == Player_State_Death
24
Object.State = TUNNELPATH_3_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 = 0xC800
37
Player.YPos = 0xEE00
38
break
39
case 1
40
Player.XPos = 0xC800
41
Player.YPos = 0xAEE00
42
break
43
case 2
44
Player.XPos = 0xC800
45
Player.YPos = 0x14EE00
46
break
47
case 3
48
Player.XPos = 0xC800
49
Player.YPos = 0x1EEE00
50
break
51
case 4
52
Player.XPos = 0xC800
53
Player.YPos = 0x20EE00
54
break
55
case 5
56
Player.XPos = 0xAC800
57
Player.YPos = 0x244300
58
break
59
case 6
60
Player.XPos = 0x14C800
61
Player.YPos = 0x279800
62
break
63
case 7
64
Player.XPos = 0x1EC800
65
Player.YPos = 0x2AED00
66
break
67
case 8
68
Player.XPos = 0x28C800
69
Player.YPos = 0x2E4200
70
break
71
case 9
72
Player.XPos = 0x32C800
73
Player.YPos = 0x319700
74
break
75
case 10
76
Player.XPos = 0x3CC800
77
Player.YPos = 0x34EC00
78
break
79
case 11
80
Player.XPos = 0x46C800
81
Player.YPos = 0x384100
82
break
83
case 12
84
Player.XPos = 0x50C800
85
Player.YPos = 0x3B9600
86
break
87
case 13
88
Player.XPos = 0x5AC800
89
Player.YPos = 0x3EEB00
90
break
91
case 14
92
Player.XPos = 0x60C800
93
Player.YPos = 0x40EB00
94
break
95
case 15
96
Player.XPos = 0x56C800
97
Player.YPos = 0x436B00
98
break
99
case 16
100
Player.XPos = 0x4CC800
101
Player.YPos = 0x45EB00
102
break
103
case 17
104
Player.XPos = 0x42C800
105
Player.YPos = 0x486B00
106
break
107
case 18
108
Player.XPos = 0x38C800
109
Player.YPos = 0x4AEB00
110
break
111
case 19
112
Player.XPos = 0x2EC800
113
Player.YPos = 0x4D6B00
114
break
115
case 20
116
Player.XPos = 0x24C800
117
Player.YPos = 0x4FEB00
118
break
119
case 21
120
Player.XPos = 0x1AC800
121
Player.YPos = 0x526B00
122
break
123
case 22
124
Player.XPos = 0x10C800
125
Player.YPos = 0x54EB00
126
break
127
case 23
128
Player.XPos = 0x6C800
129
Player.YPos = 0x576B00
130
break
131
case 24
132
Player.XPos = -0x33800
133
Player.YPos = 0x59EB00
134
break
135
case 25
136
Player.XPos = -0xD3800
137
Player.YPos = 0x5C6B00
138
break
139
case 26
140
Player.XPos = -0x173800
141
Player.YPos = 0x5EEB00
142
break
143
case 27
144
Player.XPos = -0x1F3800
145
Player.YPos = 0x60EB00
146
break
147
case 28
148
Player.XPos = -0x153800
149
Player.YPos = 0x636B00
150
break
151
case 29
152
Player.XPos = -0xB3800
153
Player.YPos = 0x65EB00
154
break
155
case 30
156
Player.XPos = -0x13800
157
Player.YPos = 0x686B00
158
break
159
case 31
160
Player.XPos = 0x8C800
161
Player.YPos = 0x6AEB00
162
break
163
case 32
164
Player.XPos = 0x12C800
165
Player.YPos = 0x6D6B00
166
break
167
case 33
168
Player.XPos = 0x1CC800
169
Player.YPos = 0x6FEB00
170
break
171
case 34
172
Player.XPos = 0x26C800
173
Player.YPos = 0x726B00
174
break
175
case 35
176
Player.XPos = 0x30C800
177
Player.YPos = 0x74EB00
178
break
179
case 36
180
Player.XPos = 0x3AC800
181
Player.YPos = 0x776B00
182
break
183
case 37
184
Player.XPos = 0x44C800
185
Player.YPos = 0x79EB00
186
break
187
case 38
188
Player.XPos = 0x4EC800
189
Player.YPos = 0x7C6B00
190
break
191
case 39
192
Player.XPos = 0x58C800
193
Player.YPos = 0x7EEB00
194
break
195
case 40
196
Player.XPos = 0x60C800
197
Player.YPos = 0x80EB00
198
break
199
case 41
200
Player.XPos = 0x56C800
201
Player.YPos = 0x836B00
202
break
203
case 42
204
Player.XPos = 0x4CC800
205
Player.YPos = 0x85EB00
206
break
207
case 43
208
Player.XPos = 0x42C800
209
Player.YPos = 0x886B00
210
break
211
case 44
212
Player.XPos = 0x38C800
213
Player.YPos = 0x8AEB00
214
break
215
case 45
216
Player.XPos = 0x2EC800
217
Player.YPos = 0x8D6B00
218
break
219
case 46
220
Player.XPos = 0x24C800
221
Player.YPos = 0x8FEB00
222
break
223
case 47
224
Player.XPos = 0x1AC800
225
Player.YPos = 0x926B00
226
break
227
case 48
228
Player.XPos = 0x10C800
229
Player.YPos = 0x94EB00
230
break
231
case 49
232
Player.XPos = 0x6C800
233
Player.YPos = 0x976B00
234
break
235
case 50
236
Player.XPos = -0x33800
237
Player.YPos = 0x99EB00
238
break
239
case 51
240
Player.XPos = -0xD3800
241
Player.YPos = 0x9C6B00
242
break
243
case 52
244
Player.XPos = -0x173800
245
Player.YPos = 0x9EEB00
246
break
247
case 53
248
Player.XPos = -0x1F3800
249
Player.YPos = 0xA0EB00
250
break
251
case 54
252
Player.XPos = -0x153800
253
Player.YPos = 0xA36B00
254
break
255
case 55
256
Player.XPos = -0xB3800
257
Player.YPos = 0xA5EB00
258
break
259
case 56
260
Player.XPos = -0x13800
261
Player.YPos = 0xA86B00
262
break
263
case 57
264
Player.XPos = 0x8C800
265
Player.YPos = 0xAAEB00
266
break
267
case 58
268
Player.XPos = 0x12C800
269
Player.YPos = 0xAD6B00
270
break
271
case 59
272
Player.XPos = 0x1CC800
273
Player.YPos = 0xAFEB00
274
break
275
case 60
276
Player.XPos = 0x26C800
277
Player.YPos = 0xB26B00
278
break
279
case 61
280
Player.XPos = 0x30C800
281
Player.YPos = 0xB4EB00
282
break
283
case 62
284
Player.XPos = 0x3AC800
285
Player.YPos = 0xB76B00
286
break
287
case 63
288
Player.XPos = 0x44C800
289
Player.YPos = 0xB9EB00
290
break
291
case 64
292
Player.XPos = 0x4EC800
293
Player.YPos = 0xBC6B00
294
break
295
case 65
296
Player.XPos = 0x58C800
297
Player.YPos = 0xBEEB00
298
break
299
case 66
300
Player.XPos = 0x60C800
301
Player.YPos = 0xC0EB00
302
break
303
case 67
304
Player.XPos = 0x56C800
305
Player.YPos = 0xC36B00
306
break
307
case 68
308
Player.XPos = 0x4CC800
309
Player.YPos = 0xC5EB00
310
break
311
case 69
312
Player.XPos = 0x42C800
313
Player.YPos = 0xC86B00
314
break
315
case 70
316
Player.XPos = 0x38C800
317
Player.YPos = 0xCAEB00
318
break
319
case 71
320
Player.XPos = 0x2EC800
321
Player.YPos = 0xCD6B00
322
break
323
case 72
324
Player.XPos = 0x24C800
325
Player.YPos = 0xCFEB00
326
break
327
case 73
328
Player.XPos = 0x1AC800
329
Player.YPos = 0xD26B00
330
break
331
case 74
332
Player.XPos = 0x10C800
333
Player.YPos = 0xD4EB00
334
break
335
case 75
336
Player.XPos = 0x6C800
337
Player.YPos = 0xD76B00
338
break
339
case 76
340
Player.XPos = -0x33800
341
Player.YPos = 0xD9EB00
342
break
343
case 77
344
Player.XPos = -0xD3800
345
Player.YPos = 0xDC6B00
346
break
347
case 78
348
Player.XPos = -0x173800
349
Player.YPos = 0xDEEB00
350
break
351
case 79
352
Player.XPos = -0x1F3800
353
Player.YPos = 0xE0EB00
354
break
355
case 80
356
Player.XPos = -0x153800
357
Player.YPos = 0xE36B00
358
break
359
case 81
360
Player.XPos = -0xB3800
361
Player.YPos = 0xE5EB00
362
break
363
case 82
364
Player.XPos = -0x13800
365
Player.YPos = 0xE86B00
366
break
367
case 83
368
Player.XPos = 0x8C800
369
Player.YPos = 0xEAEB00
370
break
371
case 84
372
Player.XPos = 0x12C800
373
Player.YPos = 0xED6B00
374
break
375
case 85
376
Player.XPos = 0x1CC800
377
Player.YPos = 0xEFEB00
378
break
379
case 86
380
Player.XPos = 0x26C800
381
Player.YPos = 0xF26B00
382
break
383
case 87
384
Player.XPos = 0x30C800
385
Player.YPos = 0xF4EB00
386
break
387
case 88
388
Player.XPos = 0x3AC800
389
Player.YPos = 0xF76B00
390
break
391
case 89
392
Player.XPos = 0x44C800
393
Player.YPos = 0xF9EB00
394
break
395
case 90
396
Player.XPos = 0x4EC800
397
Player.YPos = 0xFC6B00
398
break
399
case 91
400
Player.XPos = 0x58C800
401
Player.YPos = 0xFEEB00
402
break
403
case 92
404
Player.XPos = 0x60C800
405
Player.YPos = 0x100EB00
406
break
407
case 93
408
Player.XPos = 0x6AC800
409
Player.YPos = 0x1076B00
410
break
411
case 94
412
Player.XPos = 0x74C800
413
Player.YPos = 0x1112300
414
415
Object.State = TUNNELPATH_3_IDLE
416
Object.Priority = PRIORITY_BOUNDS
417
418
Player.XVelocity = 0xA0000
419
Player.Speed = 0xA0000
420
Player.YVelocity = 0x60000
421
422
#platform: Use_Origins
423
Player.State = Player_State_Air_NoDropDash
424
#endplatform
425
426
#platform: Use_Standalone
427
Player.State = Player_State_Air
428
#endplatform
429
430
Player.ObjectInteraction = true
431
break
432
433
end switch
434
435
Player.XPos += Object.XPos
436
Player.YPos += Object.YPos
437
438
if Object.State > TUNNELPATH_3_IDLE
439
Player.Speed -= Player.XPos
440
FlipSign(Player.Speed)
441
end if
442
end if
443
444
end sub
445
446
447
sub ObjectPlayerInteraction
448
449
if Object.PropertyValue == 0
450
if Player.State != Player_State_Static
451
PlayerObjectCollision(C_TOUCH, -8, -16, 8, 16)
452
453
if CheckResult == true
454
Player.State = Player_State_Static
455
Player.ObjectInteraction = false
456
457
Object.State = TUNNELPATH_3_ACTIVE
458
Object.Timer = 0
459
Object.Priority = PRIORITY_ACTIVE
460
461
PlaySfx(SFX_G_RELEASE, false)
462
end if
463
end if
464
end if
465
466
end sub
467
468
469
// ========================
470
// Editor Subs
471
// ========================
472
473
sub RSDKDraw
474
DrawSprite(0)
475
476
//#platform: DUMMY
477
if Editor.ShowGizmos == true
478
TempValue2 = 0
479
while TempValue2 < 94
480
switch TempValue2
481
case 0
482
TempValue0 = 51200
483
TempValue1 = 60928
484
break
485
486
case 1
487
TempValue0 = 51200
488
TempValue1 = 716288
489
break
490
491
case 2
492
TempValue0 = 51200
493
TempValue1 = 1371648
494
break
495
496
case 3
497
TempValue0 = 51200
498
TempValue1 = 2027008
499
break
500
501
case 4
502
TempValue0 = 51200
503
TempValue1 = 2158080
504
break
505
506
case 5
507
TempValue0 = 706560
508
TempValue1 = 2376448
509
break
510
511
case 6
512
TempValue0 = 1361920
513
TempValue1 = 2594816
514
break
515
516
case 7
517
TempValue0 = 2017280
518
TempValue1 = 2813184
519
break
520
521
case 8
522
TempValue0 = 2672640
523
TempValue1 = 3031552
524
break
525
526
case 9
527
TempValue0 = 3328000
528
TempValue1 = 3249920
529
break
530
531
case 10
532
TempValue0 = 3983360
533
TempValue1 = 3468288
534
break
535
536
case 11
537
TempValue0 = 4638720
538
TempValue1 = 3686656
539
break
540
541
case 12
542
TempValue0 = 5294080
543
TempValue1 = 3905024
544
break
545
546
case 13
547
TempValue0 = 5949440
548
TempValue1 = 4123392
549
break
550
551
case 14
552
TempValue0 = 6342656
553
TempValue1 = 4254464
554
break
555
556
case 15
557
TempValue0 = 5687296
558
TempValue1 = 4418304
559
break
560
561
case 16
562
TempValue0 = 5031936
563
TempValue1 = 4582144
564
break
565
566
case 17
567
TempValue0 = 4376576
568
TempValue1 = 4745984
569
break
570
571
case 18
572
TempValue0 = 3721216
573
TempValue1 = 4909824
574
break
575
576
case 19
577
TempValue0 = 3065856
578
TempValue1 = 5073664
579
break
580
581
case 20
582
TempValue0 = 2410496
583
TempValue1 = 5237504
584
break
585
586
case 21
587
TempValue0 = 1755136
588
TempValue1 = 5401344
589
break
590
591
case 22
592
TempValue0 = 1099776
593
TempValue1 = 5565184
594
break
595
596
case 23
597
TempValue0 = 444416
598
TempValue1 = 5729024
599
break
600
601
case 24
602
TempValue0 = -210944
603
TempValue1 = 5892864
604
break
605
606
case 25
607
TempValue0 = -866304
608
TempValue1 = 6056704
609
break
610
611
case 26
612
TempValue0 = -1521664
613
TempValue1 = 6220544
614
break
615
616
case 27
617
TempValue0 = -2045952
618
TempValue1 = 6351616
619
break
620
621
case 28
622
TempValue0 = -1390592
623
TempValue1 = 6515456
624
break
625
626
case 29
627
TempValue0 = -735232
628
TempValue1 = 6679296
629
break
630
631
case 30
632
TempValue0 = -79872
633
TempValue1 = 6843136
634
break
635
636
case 31
637
TempValue0 = 575488
638
TempValue1 = 7006976
639
break
640
641
case 32
642
TempValue0 = 1230848
643
TempValue1 = 7170816
644
break
645
646
case 33
647
TempValue0 = 1886208
648
TempValue1 = 7334656
649
break
650
651
case 34
652
TempValue0 = 2541568
653
TempValue1 = 7498496
654
break
655
656
case 35
657
TempValue0 = 3196928
658
TempValue1 = 7662336
659
break
660
661
case 36
662
TempValue0 = 3852288
663
TempValue1 = 7826176
664
break
665
666
case 37
667
TempValue0 = 4507648
668
TempValue1 = 7990016
669
break
670
671
case 38
672
TempValue0 = 5163008
673
TempValue1 = 8153856
674
break
675
676
case 39
677
TempValue0 = 5818368
678
TempValue1 = 8317696
679
break
680
681
case 40
682
TempValue0 = 6342656
683
TempValue1 = 8448768
684
break
685
686
case 41
687
TempValue0 = 5687296
688
TempValue1 = 8612608
689
break
690
691
case 42
692
TempValue0 = 5031936
693
TempValue1 = 8776448
694
break
695
696
case 43
697
TempValue0 = 4376576
698
TempValue1 = 8940288
699
break
700
701
case 44
702
TempValue0 = 3721216
703
TempValue1 = 9104128
704
break
705
706
case 45
707
TempValue0 = 3065856
708
TempValue1 = 9267968
709
break
710
711
case 46
712
TempValue0 = 2410496
713
TempValue1 = 9431808
714
break
715
716
case 47
717
TempValue0 = 1755136
718
TempValue1 = 9595648
719
break
720
721
case 48
722
TempValue0 = 1099776
723
TempValue1 = 9759488
724
break
725
726
case 49
727
TempValue0 = 444416
728
TempValue1 = 9923328
729
break
730
731
case 50
732
TempValue0 = -210944
733
TempValue1 = 10087168
734
break
735
736
case 51
737
TempValue0 = -866304
738
TempValue1 = 10251008
739
break
740
741
case 52
742
TempValue0 = -1521664
743
TempValue1 = 10414848
744
break
745
746
case 53
747
TempValue0 = -2045952
748
TempValue1 = 10545920
749
break
750
751
case 54
752
TempValue0 = -1390592
753
TempValue1 = 10709760
754
break
755
756
case 55
757
TempValue0 = -735232
758
TempValue1 = 10873600
759
break
760
761
case 56
762
TempValue0 = -79872
763
TempValue1 = 11037440
764
break
765
766
case 57
767
TempValue0 = 575488
768
TempValue1 = 11201280
769
break
770
771
case 58
772
TempValue0 = 1230848
773
TempValue1 = 11365120
774
break
775
776
case 59
777
TempValue0 = 1886208
778
TempValue1 = 11528960
779
break
780
781
case 60
782
TempValue0 = 2541568
783
TempValue1 = 11692800
784
break
785
786
case 61
787
TempValue0 = 3196928
788
TempValue1 = 11856640
789
break
790
791
case 62
792
TempValue0 = 3852288
793
TempValue1 = 12020480
794
break
795
796
case 63
797
TempValue0 = 4507648
798
TempValue1 = 12184320
799
break
800
801
case 64
802
TempValue0 = 5163008
803
TempValue1 = 12348160
804
break
805
806
case 65
807
TempValue0 = 5818368
808
TempValue1 = 12512000
809
break
810
811
case 66
812
TempValue0 = 6342656
813
TempValue1 = 12643072
814
break
815
816
case 67
817
TempValue0 = 5687296
818
TempValue1 = 12806912
819
break
820
821
case 68
822
TempValue0 = 5031936
823
TempValue1 = 12970752
824
break
825
826
case 69
827
TempValue0 = 4376576
828
TempValue1 = 13134592
829
break
830
831
case 70
832
TempValue0 = 3721216
833
TempValue1 = 13298432
834
break
835
836
case 71
837
TempValue0 = 3065856
838
TempValue1 = 13462272
839
break
840
841
case 72
842
TempValue0 = 2410496
843
TempValue1 = 13626112
844
break
845
846
case 73
847
TempValue0 = 1755136
848
TempValue1 = 13789952
849
break
850
851
case 74
852
TempValue0 = 1099776
853
TempValue1 = 13953792
854
break
855
856
case 75
857
TempValue0 = 444416
858
TempValue1 = 14117632
859
break
860
861
case 76
862
TempValue0 = -210944
863
TempValue1 = 14281472
864
break
865
866
case 77
867
TempValue0 = -866304
868
TempValue1 = 14445312
869
break
870
871
case 78
872
TempValue0 = -1521664
873
TempValue1 = 14609152
874
break
875
876
case 79
877
TempValue0 = -2045952
878
TempValue1 = 14740224
879
break
880
881
case 80
882
TempValue0 = -1390592
883
TempValue1 = 14904064
884
break
885
886
case 81
887
TempValue0 = -735232
888
TempValue1 = 15067904
889
break
890
891
case 82
892
TempValue0 = -79872
893
TempValue1 = 15231744
894
break
895
896
case 83
897
TempValue0 = 575488
898
TempValue1 = 15395584
899
break
900
901
case 84
902
TempValue0 = 1230848
903
TempValue1 = 15559424
904
break
905
906
case 85
907
TempValue0 = 1886208
908
TempValue1 = 15723264
909
break
910
911
case 86
912
TempValue0 = 2541568
913
TempValue1 = 15887104
914
break
915
916
case 87
917
TempValue0 = 3196928
918
TempValue1 = 16050944
919
break
920
921
case 88
922
TempValue0 = 3852288
923
TempValue1 = 16214784
924
break
925
926
case 89
927
TempValue0 = 4507648
928
TempValue1 = 16378624
929
break
930
931
case 90
932
TempValue0 = 5163008
933
TempValue1 = 16542464
934
break
935
936
case 91
937
TempValue0 = 5818368
938
TempValue1 = 16706304
939
break
940
941
case 92
942
TempValue0 = 6342656
943
TempValue1 = 16837376
944
break
945
946
case 93
947
TempValue0 = 6998016
948
TempValue1 = 17263360
949
break
950
951
case 94
952
TempValue0 = 7653376
953
TempValue1 = 17900288
954
break
955
956
end switch
957
958
TempValue0 += Object.XPos
959
TempValue1 += Object.YPos
960
961
DrawRectWorld(TempValue0, TempValue1, 4, 4, 255, 255, 255, 255)
962
963
TempValue2++
964
loop
965
end if
966
//#endplatform
967
end sub
968
969
970
sub RSDKLoad
971
LoadSpriteSheet("Global/Display.gif")
972
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
973
974
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
975
end sub
976
977