Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R5/TunnelPath5.txt
1319 views
1
//---------------Sonic CD Tunnel Path 5 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_5_IDLE
10
#alias 1 : TUNNELPATH_5_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_5_ACTIVE
23
if Player.State == Player_State_Death
24
Object.State = TUNNELPATH_5_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 = 0x100
37
Player.YPos = 0x8AF00
38
break
39
case 1
40
Player.XPos = 0xA0100
41
Player.YPos = 0xDAF00
42
break
43
case 2
44
Player.XPos = 0x140100
45
Player.YPos = 0x12AF00
46
break
47
case 3
48
Player.XPos = 0x1E0100
49
Player.YPos = 0x17AF00
50
break
51
case 4
52
Player.XPos = 0x280100
53
Player.YPos = 0x1CAF00
54
break
55
case 5
56
Player.XPos = 0x320100
57
Player.YPos = 0x21AF00
58
break
59
case 6
60
Player.XPos = 0x3C0100
61
Player.YPos = 0x26AF00
62
break
63
case 7
64
Player.XPos = 0x460100
65
Player.YPos = 0x2BAF00
66
break
67
case 8
68
Player.XPos = 0x500100
69
Player.YPos = 0x30AF00
70
break
71
case 9
72
Player.XPos = 0x5A0100
73
Player.YPos = 0x35AF00
74
break
75
case 10
76
Player.XPos = 0x640100
77
Player.YPos = 0x3AAF00
78
break
79
case 11
80
Player.XPos = 0x6E0100
81
Player.YPos = 0x3FAF00
82
break
83
case 12
84
Player.XPos = 0x780100
85
Player.YPos = 0x44AF00
86
break
87
case 13
88
Player.XPos = 0x820100
89
Player.YPos = 0x49AF00
90
break
91
case 14
92
Player.XPos = 0x8C0100
93
Player.YPos = 0x4EAF00
94
break
95
case 15
96
Player.XPos = 0x900100
97
Player.YPos = 0x50AF00
98
break
99
case 16
100
Player.XPos = 0x860100
101
Player.YPos = 0x532F00
102
break
103
case 17
104
Player.XPos = 0x7C0100
105
Player.YPos = 0x55AF00
106
break
107
case 18
108
Player.XPos = 0x720100
109
Player.YPos = 0x582F00
110
break
111
case 19
112
Player.XPos = 0x680100
113
Player.YPos = 0x5AAF00
114
break
115
case 20
116
Player.XPos = 0x5E0100
117
Player.YPos = 0x5D2F00
118
break
119
case 21
120
Player.XPos = 0x540100
121
Player.YPos = 0x5FAF00
122
break
123
case 22
124
Player.XPos = 0x4A0100
125
Player.YPos = 0x622F00
126
break
127
case 23
128
Player.XPos = 0x400100
129
Player.YPos = 0x64AF00
130
break
131
case 24
132
Player.XPos = 0x360100
133
Player.YPos = 0x672F00
134
break
135
case 25
136
Player.XPos = 0x2C0100
137
Player.YPos = 0x69AF00
138
break
139
case 26
140
Player.XPos = 0x220100
141
Player.YPos = 0x6C2F00
142
break
143
case 27
144
Player.XPos = 0x180100
145
Player.YPos = 0x6EAF00
146
break
147
case 28
148
Player.XPos = 0x100100
149
Player.YPos = 0x70AF00
150
break
151
case 29
152
Player.XPos = 0x1A0100
153
Player.YPos = 0x732F00
154
break
155
case 30
156
Player.XPos = 0x240100
157
Player.YPos = 0x75AF00
158
break
159
case 31
160
Player.XPos = 0x2E0100
161
Player.YPos = 0x782F00
162
break
163
case 32
164
Player.XPos = 0x380100
165
Player.YPos = 0x7AAF00
166
break
167
case 33
168
Player.XPos = 0x420100
169
Player.YPos = 0x7D2F00
170
break
171
case 34
172
Player.XPos = 0x4C0100
173
Player.YPos = 0x7FAF00
174
break
175
case 35
176
Player.XPos = 0x560100
177
Player.YPos = 0x822F00
178
break
179
case 36
180
Player.XPos = 0x600100
181
Player.YPos = 0x84AF00
182
break
183
case 37
184
Player.XPos = 0x6A0100
185
Player.YPos = 0x872F00
186
break
187
case 38
188
Player.XPos = 0x740100
189
Player.YPos = 0x89AF00
190
break
191
case 39
192
Player.XPos = 0x7E0100
193
Player.YPos = 0x8C2F00
194
break
195
case 40
196
Player.XPos = 0x880100
197
Player.YPos = 0x8EAF00
198
break
199
case 41
200
Player.XPos = 0x900100
201
Player.YPos = 0x90AF00
202
break
203
case 42
204
Player.XPos = 0x860100
205
Player.YPos = 0x932F00
206
break
207
case 43
208
Player.XPos = 0x7C0100
209
Player.YPos = 0x95AF00
210
break
211
case 44
212
Player.XPos = 0x720100
213
Player.YPos = 0x982F00
214
break
215
case 45
216
Player.XPos = 0x680100
217
Player.YPos = 0x9AAF00
218
break
219
case 46
220
Player.XPos = 0x5E0100
221
Player.YPos = 0x9D2F00
222
break
223
case 47
224
Player.XPos = 0x540100
225
Player.YPos = 0x9FAF00
226
break
227
case 48
228
Player.XPos = 0x4A0100
229
Player.YPos = 0xA22F00
230
break
231
case 49
232
Player.XPos = 0x400100
233
Player.YPos = 0xA4AF00
234
break
235
case 50
236
Player.XPos = 0x360100
237
Player.YPos = 0xA72F00
238
break
239
case 51
240
Player.XPos = 0x2C0100
241
Player.YPos = 0xA9AF00
242
break
243
case 52
244
Player.XPos = 0x220100
245
Player.YPos = 0xAC2F00
246
break
247
case 53
248
Player.XPos = 0x180100
249
Player.YPos = 0xAEAF00
250
break
251
case 54
252
Player.XPos = 0x100100
253
Player.YPos = 0xB0AF00
254
break
255
case 55
256
Player.XPos = 0x1A0100
257
Player.YPos = 0xB32F00
258
break
259
case 56
260
Player.XPos = 0x240100
261
Player.YPos = 0xB5AF00
262
break
263
case 57
264
Player.XPos = 0x2E0100
265
Player.YPos = 0xB82F00
266
break
267
case 58
268
Player.XPos = 0x380100
269
Player.YPos = 0xBAAF00
270
break
271
case 59
272
Player.XPos = 0x420100
273
Player.YPos = 0xBD2F00
274
break
275
case 60
276
Player.XPos = 0x4C0100
277
Player.YPos = 0xBFAF00
278
break
279
case 61
280
Player.XPos = 0x560100
281
Player.YPos = 0xC22F00
282
break
283
case 62
284
Player.XPos = 0x600100
285
Player.YPos = 0xC4AF00
286
break
287
case 63
288
Player.XPos = 0x6A0100
289
Player.YPos = 0xC72F00
290
break
291
case 64
292
Player.XPos = 0x740100
293
Player.YPos = 0xC9AF00
294
break
295
case 65
296
Player.XPos = 0x7E0100
297
Player.YPos = 0xCC2F00
298
break
299
case 66
300
Player.XPos = 0x880100
301
Player.YPos = 0xCEAF00
302
break
303
case 67
304
Player.XPos = 0x900100
305
Player.YPos = 0xD0AF00
306
break
307
case 68
308
Player.XPos = 0x860100
309
Player.YPos = 0xD32F00
310
break
311
case 69
312
Player.XPos = 0x7C0100
313
Player.YPos = 0xD5AF00
314
break
315
case 70
316
Player.XPos = 0x720100
317
Player.YPos = 0xD82F00
318
break
319
case 71
320
Player.XPos = 0x680100
321
Player.YPos = 0xDAAF00
322
break
323
case 72
324
Player.XPos = 0x5E0100
325
Player.YPos = 0xDD2F00
326
break
327
case 73
328
Player.XPos = 0x540100
329
Player.YPos = 0xDFAF00
330
break
331
case 74
332
Player.XPos = 0x4A0100
333
Player.YPos = 0xE22F00
334
break
335
case 75
336
Player.XPos = 0x400100
337
Player.YPos = 0xE4AF00
338
break
339
case 76
340
Player.XPos = 0x360100
341
Player.YPos = 0xE72F00
342
break
343
case 77
344
Player.XPos = 0x2C0100
345
Player.YPos = 0xE9AF00
346
break
347
case 78
348
Player.XPos = 0x220100
349
Player.YPos = 0xEC2F00
350
break
351
case 79
352
Player.XPos = 0x180100
353
Player.YPos = 0xEEAF00
354
break
355
case 80
356
Player.XPos = 0x100100
357
Player.YPos = 0xF0AF00
358
break
359
case 81
360
Player.XPos = 0x1A0100
361
Player.YPos = 0xF32F00
362
break
363
case 82
364
Player.XPos = 0x240100
365
Player.YPos = 0xF5AF00
366
break
367
case 83
368
Player.XPos = 0x2E0100
369
Player.YPos = 0xF82F00
370
break
371
case 84
372
Player.XPos = 0x380100
373
Player.YPos = 0xFAAF00
374
break
375
case 85
376
Player.XPos = 0x420100
377
Player.YPos = 0xFD2F00
378
break
379
case 86
380
Player.XPos = 0x4C0100
381
Player.YPos = 0xFFAF00
382
break
383
case 87
384
Player.XPos = 0x560100
385
Player.YPos = 0x1022F00
386
break
387
case 88
388
Player.XPos = 0x600100
389
Player.YPos = 0x104AF00
390
break
391
case 89
392
Player.XPos = 0x6A0100
393
Player.YPos = 0x1072F00
394
break
395
case 90
396
Player.XPos = 0x740100
397
Player.YPos = 0x109AF00
398
break
399
case 91
400
Player.XPos = 0x7E0100
401
Player.YPos = 0x10C2F00
402
break
403
case 92
404
Player.XPos = 0x880100
405
Player.YPos = 0x10EAF00
406
break
407
case 93
408
Player.XPos = 0x900100
409
Player.YPos = 0x110AF00
410
break
411
case 94
412
Player.XPos = 0x860100
413
Player.YPos = 0x1132F00
414
break
415
case 95
416
Player.XPos = 0x7C0100
417
Player.YPos = 0x115AF00
418
break
419
case 96
420
Player.XPos = 0x720100
421
Player.YPos = 0x1182F00
422
break
423
case 97
424
Player.XPos = 0x680100
425
Player.YPos = 0x11AAF00
426
break
427
case 98
428
Player.XPos = 0x5E0100
429
Player.YPos = 0x11D2F00
430
break
431
case 99
432
Player.XPos = 0x540100
433
Player.YPos = 0x11FAF00
434
break
435
case 100
436
Player.XPos = 0x4A0100
437
Player.YPos = 0x1222F00
438
break
439
case 101
440
Player.XPos = 0x400100
441
Player.YPos = 0x124AF00
442
break
443
case 102
444
Player.XPos = 0x360100
445
Player.YPos = 0x1272F00
446
break
447
case 103
448
Player.XPos = 0x2C0100
449
Player.YPos = 0x129AF00
450
break
451
case 104
452
Player.XPos = 0x220100
453
Player.YPos = 0x12C2F00
454
break
455
case 105
456
Player.XPos = 0x180100
457
Player.YPos = 0x12EAF00
458
break
459
case 106
460
Player.XPos = 0x100100
461
Player.YPos = 0x130AF00
462
break
463
case 107
464
Player.XPos = 0x1A0100
465
Player.YPos = 0x1332F00
466
break
467
case 108
468
Player.XPos = 0x240100
469
Player.YPos = 0x135AF00
470
break
471
case 109
472
Player.XPos = 0x2E0100
473
Player.YPos = 0x1382F00
474
break
475
case 110
476
Player.XPos = 0x380100
477
Player.YPos = 0x13AAF00
478
break
479
case 111
480
Player.XPos = 0x420100
481
Player.YPos = 0x13D2F00
482
break
483
case 112
484
Player.XPos = 0x4C0100
485
Player.YPos = 0x13FAF00
486
break
487
case 113
488
Player.XPos = 0x560100
489
Player.YPos = 0x1422F00
490
break
491
case 114
492
Player.XPos = 0x600100
493
Player.YPos = 0x144AF00
494
break
495
case 115
496
Player.XPos = 0x6A0100
497
Player.YPos = 0x1472F00
498
break
499
case 116
500
Player.XPos = 0x740100
501
Player.YPos = 0x149AF00
502
break
503
case 117
504
Player.XPos = 0x7E0100
505
Player.YPos = 0x14C2F00
506
break
507
case 118
508
Player.XPos = 0x880100
509
Player.YPos = 0x14EAF00
510
break
511
case 119
512
Player.XPos = 0x900100
513
Player.YPos = 0x150AF00
514
break
515
case 120
516
Player.XPos = 0x860100
517
Player.YPos = 0x1532F00
518
break
519
case 121
520
Player.XPos = 0x7C0100
521
Player.YPos = 0x155AF00
522
break
523
case 122
524
Player.XPos = 0x720100
525
Player.YPos = 0x1582F00
526
break
527
case 123
528
Player.XPos = 0x680100
529
Player.YPos = 0x15AAF00
530
break
531
case 124
532
Player.XPos = 0x5E0100
533
Player.YPos = 0x15D2F00
534
break
535
case 125
536
Player.XPos = 0x540100
537
Player.YPos = 0x15FAF00
538
break
539
case 126
540
Player.XPos = 0x4A0100
541
Player.YPos = 0x1622F00
542
break
543
case 127
544
Player.XPos = 0x400100
545
Player.YPos = 0x164AF00
546
break
547
case 128
548
Player.XPos = 0x360100
549
Player.YPos = 0x1672F00
550
break
551
case 129
552
Player.XPos = 0x2C0100
553
Player.YPos = 0x169AF00
554
break
555
case 130
556
Player.XPos = 0x220100
557
Player.YPos = 0x16C2F00
558
break
559
case 131
560
Player.XPos = 0x180100
561
Player.YPos = 0x16EAF00
562
break
563
case 132
564
Player.XPos = 0x100100
565
Player.YPos = 0x170AF00
566
break
567
case 133
568
Player.XPos = 0x1A0100
569
Player.YPos = 0x1782F00
570
break
571
case 134
572
Player.XPos = 0x240100
573
Player.YPos = 0x17FAF00
574
break
575
case 135
576
Player.XPos = 0x2E0100
577
Player.YPos = 0x1872F00
578
break
579
case 136
580
Player.XPos = 0x380100
581
Player.YPos = 0x18EAF00
582
break
583
case 137
584
Player.XPos = 0x420100
585
Player.YPos = 0x1962F00
586
break
587
case 138
588
Player.XPos = 0x4C0100
589
Player.YPos = 0x19DAF00
590
break
591
case 139
592
Player.XPos = 0x560100
593
Player.YPos = 0x1A52F00
594
break
595
case 140
596
Player.XPos = 0x600100
597
Player.YPos = 0x1ACAF00
598
break
599
case 141
600
Player.XPos = 0x6A0100
601
Player.YPos = 0x1B42F00
602
break
603
case 142
604
Player.XPos = 0x740100
605
Player.YPos = 0x1BBAF00
606
break
607
case 143
608
Player.XPos = 0x7E0100
609
Player.YPos = 0x1C32F00
610
break
611
case 144
612
Player.XPos = 0x880100
613
Player.YPos = 0x1CAAF00
614
615
Object.State = TUNNELPATH_5_IDLE
616
Object.Priority = PRIORITY_BOUNDS
617
618
Player.XVelocity = 0xA0000
619
Player.Speed = 0xA0000
620
Player.YVelocity = 0x60000
621
622
#platform: Use_Origins
623
Player.State = Player_State_Air_NoDropDash
624
#endplatform
625
626
#platform: Use_Standalone
627
Player.State = Player_State_Air
628
#endplatform
629
Player.ObjectInteraction = true
630
break
631
632
end switch
633
634
Player.XPos += Object.XPos
635
Player.YPos += Object.YPos
636
637
if Object.State > TUNNELPATH_5_IDLE
638
Player.Speed -= Player.XPos
639
FlipSign(Player.Speed)
640
end if
641
end if
642
643
end sub
644
645
646
sub ObjectPlayerInteraction
647
648
if Object.PropertyValue == 0
649
if Player.State != Player_State_Static
650
PlayerObjectCollision(C_TOUCH, -8, -16, 8, 16)
651
652
if CheckResult == true
653
Player.State = Player_State_Static
654
Player.ObjectInteraction = false
655
656
Object.State = TUNNELPATH_5_ACTIVE
657
Object.Timer = 0
658
Object.Priority = PRIORITY_ACTIVE
659
660
PlaySfx(SFX_G_RELEASE, false)
661
end if
662
end if
663
end if
664
665
end sub
666
667
668
// ========================
669
// Editor Subs
670
// ========================
671
672
sub RSDKDraw
673
DrawSprite(0)
674
end sub
675
676
677
sub RSDKLoad
678
LoadSpriteSheet("Global/Display.gif")
679
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
680
681
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
682
end sub
683
684