Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R5/TunnelPath4.txt
1319 views
1
//---------------Sonic CD Tunnel Path 4 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_4_IDLE
10
#alias 1 : TUNNELPATH_4_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_4_ACTIVE
23
if Player.State == Player_State_Death
24
Object.State = TUNNELPATH_4_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 = 0xC100
37
Player.YPos = 0x83000
38
break
39
case 1
40
Player.XPos = 0xC100
41
Player.YPos = 0x123000
42
break
43
case 2
44
Player.XPos = 0xC100
45
Player.YPos = 0x1C3000
46
break
47
case 3
48
Player.XPos = 0xC100
49
Player.YPos = 0x203000
50
break
51
case 4
52
Player.XPos = 0xAC100
53
Player.YPos = 0x243000
54
break
55
case 5
56
Player.XPos = 0x14C100
57
Player.YPos = 0x283000
58
break
59
case 6
60
Player.XPos = 0x1EC100
61
Player.YPos = 0x2C3000
62
break
63
case 7
64
Player.XPos = 0x28C100
65
Player.YPos = 0x303000
66
break
67
case 8
68
Player.XPos = 0x32C100
69
Player.YPos = 0x343000
70
break
71
case 9
72
Player.XPos = 0x3CC100
73
Player.YPos = 0x383000
74
break
75
case 10
76
Player.XPos = 0x46C100
77
Player.YPos = 0x3C3000
78
break
79
case 11
80
Player.XPos = 0x50C100
81
Player.YPos = 0x403000
82
break
83
case 12
84
Player.XPos = 0x46C100
85
Player.YPos = 0x42B000
86
break
87
case 13
88
Player.XPos = 0x3CC100
89
Player.YPos = 0x453000
90
break
91
case 14
92
Player.XPos = 0x32C100
93
Player.YPos = 0x47B000
94
break
95
case 15
96
Player.XPos = 0x28C100
97
Player.YPos = 0x4A3000
98
break
99
case 16
100
Player.XPos = 0x1EC100
101
Player.YPos = 0x4CB000
102
break
103
case 17
104
Player.XPos = 0x14C100
105
Player.YPos = 0x4F3000
106
break
107
case 18
108
Player.XPos = 0xAC100
109
Player.YPos = 0x51B000
110
break
111
case 19
112
Player.XPos = 0xC100
113
Player.YPos = 0x543000
114
break
115
case 20
116
Player.XPos = -0x93F00
117
Player.YPos = 0x56B000
118
break
119
case 21
120
Player.XPos = -0x133F00
121
Player.YPos = 0x593000
122
break
123
case 22
124
Player.XPos = -0x1D3F00
125
Player.YPos = 0x5BB000
126
break
127
case 23
128
Player.XPos = -0x273F00
129
Player.YPos = 0x5E3000
130
break
131
case 24
132
Player.XPos = -0x2F3F00
133
Player.YPos = 0x603000
134
break
135
case 25
136
Player.XPos = -0x253F00
137
Player.YPos = 0x62B000
138
break
139
case 26
140
Player.XPos = -0x1B3F00
141
Player.YPos = 0x653000
142
break
143
case 27
144
Player.XPos = -0x113F00
145
Player.YPos = 0x67B000
146
break
147
case 28
148
Player.XPos = -0x73F00
149
Player.YPos = 0x6A3000
150
break
151
case 29
152
Player.XPos = 0x2C100
153
Player.YPos = 0x6CB000
154
break
155
case 30
156
Player.XPos = 0xCC100
157
Player.YPos = 0x6F3000
158
break
159
case 31
160
Player.XPos = 0x16C100
161
Player.YPos = 0x71B000
162
break
163
case 32
164
Player.XPos = 0x20C100
165
Player.YPos = 0x743000
166
break
167
case 33
168
Player.XPos = 0x2AC100
169
Player.YPos = 0x76B000
170
break
171
case 34
172
Player.XPos = 0x34C100
173
Player.YPos = 0x793000
174
break
175
case 35
176
Player.XPos = 0x3EC100
177
Player.YPos = 0x7BB000
178
break
179
case 36
180
Player.XPos = 0x48C100
181
Player.YPos = 0x7E3000
182
break
183
case 37
184
Player.XPos = 0x50C100
185
Player.YPos = 0x803000
186
break
187
case 38
188
Player.XPos = 0x46C100
189
Player.YPos = 0x82B000
190
break
191
case 39
192
Player.XPos = 0x3CC100
193
Player.YPos = 0x853000
194
break
195
case 40
196
Player.XPos = 0x32C100
197
Player.YPos = 0x87B000
198
break
199
case 41
200
Player.XPos = 0x28C100
201
Player.YPos = 0x8A3000
202
break
203
case 42
204
Player.XPos = 0x1EC100
205
Player.YPos = 0x8CB000
206
break
207
case 43
208
Player.XPos = 0x14C100
209
Player.YPos = 0x8F3000
210
break
211
case 44
212
Player.XPos = 0xAC100
213
Player.YPos = 0x91B000
214
break
215
case 45
216
Player.XPos = 0xC100
217
Player.YPos = 0x943000
218
break
219
case 46
220
Player.XPos = -0x93F00
221
Player.YPos = 0x96B000
222
break
223
case 47
224
Player.XPos = -0x133F00
225
Player.YPos = 0x993000
226
break
227
case 48
228
Player.XPos = -0x1D3F00
229
Player.YPos = 0x9BB000
230
break
231
case 49
232
Player.XPos = -0x273F00
233
Player.YPos = 0x9E3000
234
break
235
case 50
236
Player.XPos = -0x2F3F00
237
Player.YPos = 0xA03000
238
break
239
case 51
240
Player.XPos = -0x253F00
241
Player.YPos = 0xA2B000
242
break
243
case 52
244
Player.XPos = -0x1B3F00
245
Player.YPos = 0xA53000
246
break
247
case 53
248
Player.XPos = -0x113F00
249
Player.YPos = 0xA7B000
250
break
251
case 54
252
Player.XPos = -0x73F00
253
Player.YPos = 0xAA3000
254
break
255
case 55
256
Player.XPos = 0x2C100
257
Player.YPos = 0xACB000
258
break
259
case 56
260
Player.XPos = 0xCC100
261
Player.YPos = 0xAF3000
262
break
263
case 57
264
Player.XPos = 0x16C100
265
Player.YPos = 0xB1B000
266
break
267
case 58
268
Player.XPos = 0x20C100
269
Player.YPos = 0xB43000
270
break
271
case 59
272
Player.XPos = 0x2AC100
273
Player.YPos = 0xB6B000
274
break
275
case 60
276
Player.XPos = 0x34C100
277
Player.YPos = 0xB93000
278
break
279
case 61
280
Player.XPos = 0x3EC100
281
Player.YPos = 0xBBB000
282
break
283
case 62
284
Player.XPos = 0x48C100
285
Player.YPos = 0xBE3000
286
break
287
case 63
288
Player.XPos = 0x50C100
289
Player.YPos = 0xC03000
290
break
291
case 64
292
Player.XPos = 0x46C100
293
Player.YPos = 0xC2B000
294
break
295
case 65
296
Player.XPos = 0x3CC100
297
Player.YPos = 0xC53000
298
break
299
case 66
300
Player.XPos = 0x32C100
301
Player.YPos = 0xC7B000
302
break
303
case 67
304
Player.XPos = 0x28C100
305
Player.YPos = 0xCA3000
306
break
307
case 68
308
Player.XPos = 0x1EC100
309
Player.YPos = 0xCCB000
310
break
311
case 69
312
Player.XPos = 0x14C100
313
Player.YPos = 0xCF3000
314
break
315
case 70
316
Player.XPos = 0xAC100
317
Player.YPos = 0xD1B000
318
break
319
case 71
320
Player.XPos = 0xC100
321
Player.YPos = 0xD43000
322
break
323
case 72
324
Player.XPos = -0x93F00
325
Player.YPos = 0xD6B000
326
break
327
case 73
328
Player.XPos = -0x133F00
329
Player.YPos = 0xD93000
330
break
331
case 74
332
Player.XPos = -0x1D3F00
333
Player.YPos = 0xDBB000
334
break
335
case 75
336
Player.XPos = -0x273F00
337
Player.YPos = 0xDE3000
338
break
339
case 76
340
Player.XPos = -0x2F3F00
341
Player.YPos = 0xE03000
342
break
343
case 77
344
Player.XPos = -0x253F00
345
Player.YPos = 0xE2B000
346
break
347
case 78
348
Player.XPos = -0x1B3F00
349
Player.YPos = 0xE53000
350
break
351
case 79
352
Player.XPos = -0x113F00
353
Player.YPos = 0xE7B000
354
break
355
case 80
356
Player.XPos = -0x73F00
357
Player.YPos = 0xEA3000
358
break
359
case 81
360
Player.XPos = 0x2C100
361
Player.YPos = 0xECB000
362
break
363
case 82
364
Player.XPos = 0xCC100
365
Player.YPos = 0xEF3000
366
break
367
case 83
368
Player.XPos = 0x16C100
369
Player.YPos = 0xF1B000
370
break
371
case 84
372
Player.XPos = 0x20C100
373
Player.YPos = 0xF43000
374
break
375
case 85
376
Player.XPos = 0x2AC100
377
Player.YPos = 0xF6B000
378
break
379
case 86
380
Player.XPos = 0x34C100
381
Player.YPos = 0xF93000
382
break
383
case 87
384
Player.XPos = 0x3EC100
385
Player.YPos = 0xFBB000
386
break
387
case 88
388
Player.XPos = 0x48C100
389
Player.YPos = 0xFE3000
390
break
391
case 89
392
Player.XPos = 0x50C100
393
Player.YPos = 0x1003000
394
break
395
case 90
396
Player.XPos = 0x46C100
397
Player.YPos = 0x102B000
398
break
399
case 91
400
Player.XPos = 0x3CC100
401
Player.YPos = 0x1053000
402
break
403
case 92
404
Player.XPos = 0x32C100
405
Player.YPos = 0x107B000
406
break
407
case 93
408
Player.XPos = 0x28C100
409
Player.YPos = 0x10A3000
410
break
411
case 94
412
Player.XPos = 0x1EC100
413
Player.YPos = 0x10CB000
414
break
415
case 95
416
Player.XPos = 0x14C100
417
Player.YPos = 0x10F3000
418
break
419
case 96
420
Player.XPos = 0xAC100
421
Player.YPos = 0x111B000
422
break
423
case 97
424
Player.XPos = 0xC100
425
Player.YPos = 0x1143000
426
break
427
case 98
428
Player.XPos = -0x93F00
429
Player.YPos = 0x116B000
430
break
431
case 99
432
Player.XPos = -0x133F00
433
Player.YPos = 0x1193000
434
break
435
case 100
436
Player.XPos = -0x1D3F00
437
Player.YPos = 0x11BB000
438
break
439
case 101
440
Player.XPos = -0x273F00
441
Player.YPos = 0x11E3000
442
break
443
case 102
444
Player.XPos = -0x2F3F00
445
Player.YPos = 0x1203000
446
break
447
case 103
448
Player.XPos = -0x253F00
449
Player.YPos = 0x122B000
450
break
451
case 104
452
Player.XPos = -0x1B3F00
453
Player.YPos = 0x1253000
454
break
455
case 105
456
Player.XPos = -0x113F00
457
Player.YPos = 0x127B000
458
break
459
case 106
460
Player.XPos = -0x73F00
461
Player.YPos = 0x12A3000
462
break
463
case 107
464
Player.XPos = 0x2C100
465
Player.YPos = 0x12CB000
466
break
467
case 108
468
Player.XPos = 0xCC100
469
Player.YPos = 0x12F3000
470
break
471
case 109
472
Player.XPos = 0x16C100
473
Player.YPos = 0x131B000
474
break
475
case 110
476
Player.XPos = 0x20C100
477
Player.YPos = 0x1343000
478
break
479
case 111
480
Player.XPos = 0x2AC100
481
Player.YPos = 0x136B000
482
break
483
case 112
484
Player.XPos = 0x34C100
485
Player.YPos = 0x1393000
486
break
487
case 113
488
Player.XPos = 0x3EC100
489
Player.YPos = 0x13BB000
490
break
491
case 114
492
Player.XPos = 0x48C100
493
Player.YPos = 0x13E3000
494
break
495
case 115
496
Player.XPos = 0x50C100
497
Player.YPos = 0x1403000
498
break
499
case 116
500
Player.XPos = 0x46C100
501
Player.YPos = 0x142B000
502
break
503
case 117
504
Player.XPos = 0x3CC100
505
Player.YPos = 0x1453000
506
break
507
case 118
508
Player.XPos = 0x32C100
509
Player.YPos = 0x147B000
510
break
511
case 119
512
Player.XPos = 0x28C100
513
Player.YPos = 0x14A3000
514
break
515
case 120
516
Player.XPos = 0x1EC100
517
Player.YPos = 0x14CB000
518
break
519
case 121
520
Player.XPos = 0x14C100
521
Player.YPos = 0x14F3000
522
break
523
case 122
524
Player.XPos = 0xAC100
525
Player.YPos = 0x151B000
526
break
527
case 123
528
Player.XPos = 0xC100
529
Player.YPos = 0x1543000
530
break
531
case 124
532
Player.XPos = -0x93F00
533
Player.YPos = 0x156B000
534
break
535
case 125
536
Player.XPos = -0x133F00
537
Player.YPos = 0x1593000
538
break
539
case 126
540
Player.XPos = -0x1D3F00
541
Player.YPos = 0x15BB000
542
break
543
case 127
544
Player.XPos = -0x273F00
545
Player.YPos = 0x15E3000
546
break
547
case 128
548
Player.XPos = -0x2F3F00
549
Player.YPos = 0x1603000
550
break
551
case 129
552
Player.XPos = -0x253F00
553
Player.YPos = 0x162B000
554
break
555
case 130
556
Player.XPos = -0x1B3F00
557
Player.YPos = 0x1653000
558
break
559
case 131
560
Player.XPos = -0x113F00
561
Player.YPos = 0x167B000
562
break
563
case 132
564
Player.XPos = -0x73F00
565
Player.YPos = 0x16A3000
566
break
567
case 133
568
Player.XPos = 0x2C100
569
Player.YPos = 0x16CB000
570
break
571
case 134
572
Player.XPos = 0xCC100
573
Player.YPos = 0x16F3000
574
break
575
case 135
576
Player.XPos = 0x16C100
577
Player.YPos = 0x171B000
578
break
579
case 136
580
Player.XPos = 0x20C100
581
Player.YPos = 0x1743000
582
break
583
case 137
584
Player.XPos = 0x2AC100
585
Player.YPos = 0x176B000
586
break
587
case 138
588
Player.XPos = 0x34C100
589
Player.YPos = 0x1793000
590
break
591
case 139
592
Player.XPos = 0x3EC100
593
Player.YPos = 0x17BB000
594
break
595
case 140
596
Player.XPos = 0x48C100
597
Player.YPos = 0x17E3000
598
break
599
case 141
600
Player.XPos = 0x50C100
601
Player.YPos = 0x1803000
602
break
603
case 142
604
Player.XPos = 0x46C100
605
Player.YPos = 0x182B000
606
break
607
case 143
608
Player.XPos = 0x3CC100
609
Player.YPos = 0x1853000
610
break
611
case 144
612
Player.XPos = 0x32C100
613
Player.YPos = 0x187B000
614
break
615
case 145
616
Player.XPos = 0x28C100
617
Player.YPos = 0x18A3000
618
break
619
case 146
620
Player.XPos = 0x1EC100
621
Player.YPos = 0x18CB000
622
break
623
case 147
624
Player.XPos = 0x14C100
625
Player.YPos = 0x18F3000
626
break
627
case 148
628
Player.XPos = 0xAC100
629
Player.YPos = 0x191B000
630
break
631
case 149
632
Player.XPos = 0xC100
633
Player.YPos = 0x1943000
634
break
635
case 150
636
Player.XPos = -0x93F00
637
Player.YPos = 0x196B000
638
break
639
case 151
640
Player.XPos = -0x133F00
641
Player.YPos = 0x1993000
642
break
643
case 152
644
Player.XPos = -0x1D3F00
645
Player.YPos = 0x19BB000
646
break
647
case 153
648
Player.XPos = -0x273F00
649
Player.YPos = 0x19E3000
650
break
651
case 154
652
Player.XPos = -0x2F3F00
653
Player.YPos = 0x1A03000
654
break
655
case 155
656
Player.XPos = -0x253F00
657
Player.YPos = 0x1A67000
658
break
659
case 156
660
Player.XPos = -0x1B3F00
661
Player.YPos = 0x1ACB000
662
break
663
case 157
664
Player.XPos = -0x113F00
665
Player.YPos = 0x1B2F000
666
break
667
case 158
668
Player.XPos = -0x73F00
669
Player.YPos = 0x1B93000
670
break
671
case 159
672
Player.XPos = 0x2C100
673
Player.YPos = 0x1BF7000
674
break
675
case 160
676
Player.XPos = 0xCC100
677
Player.YPos = 0x1C5B000
678
break
679
case 161
680
Player.XPos = 0x16C100
681
Player.YPos = 0x1CBF000
682
break
683
case 162
684
Player.XPos = 0x20C100
685
Player.YPos = 0x1D23000
686
break
687
case 163
688
Player.XPos = 0x2AC100
689
Player.YPos = 0x1D87000
690
break
691
case 164
692
Player.XPos = 0x34C100
693
Player.YPos = 0x1DEB000
694
break
695
case 165
696
Player.XPos = 0x3EC100
697
Player.YPos = 0x1E4F000
698
break
699
case 166
700
Player.XPos = 0x48C100
701
Player.YPos = 0x1EB3000
702
703
Object.State = TUNNELPATH_4_IDLE
704
Object.Priority = PRIORITY_BOUNDS
705
706
Player.XVelocity = 0xA0000
707
Player.Speed = 0xA0000
708
Player.YVelocity = 0x60000
709
710
#platform: Use_Origins
711
Player.State = Player_State_Air_NoDropDash
712
#endplatform
713
714
#platform: Use_Standalone
715
Player.State = Player_State_Air
716
#endplatform
717
718
Player.ObjectInteraction = true
719
break
720
721
end switch
722
723
Player.XPos += Object.XPos
724
Player.YPos += Object.YPos
725
726
if Object.State > TUNNELPATH_4_IDLE
727
Player.Speed -= Player.XPos
728
FlipSign(Player.Speed)
729
end if
730
end if
731
732
end sub
733
734
735
sub ObjectPlayerInteraction
736
737
if Object.PropertyValue == 0
738
if Player.State != Player_State_Static
739
PlayerObjectCollision(C_TOUCH, -8, -16, 8, 16)
740
741
if CheckResult == true
742
Player.State = Player_State_Static
743
Player.ObjectInteraction = false
744
745
Object.State = TUNNELPATH_4_ACTIVE
746
Object.Timer = 0
747
Object.Priority = PRIORITY_ACTIVE
748
749
PlaySfx(SFX_G_RELEASE, false)
750
end if
751
end if
752
end if
753
754
end sub
755
756
757
// ========================
758
// Editor Subs
759
// ========================
760
761
sub RSDKDraw
762
DrawSprite(0)
763
end sub
764
765
766
sub RSDKLoad
767
LoadSpriteSheet("Global/Display.gif")
768
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
769
770
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
771
end sub
772
773