summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/non_matchings/code_80005FD0/func_80008424.s336
-rw-r--r--asm/non_matchings/code_80005FD0/func_8000D100.s98
-rw-r--r--asm/non_matchings/code_80005FD0/func_8000D6D0.s170
-rw-r--r--asm/non_matchings/code_80005FD0/func_8000D940.s169
-rw-r--r--asm/non_matchings/code_80005FD0/func_8000DBAC.s129
-rw-r--r--asm/non_matchings/code_80005FD0/func_80011D48.s76
-rw-r--r--asm/non_matchings/code_80005FD0/func_800146B8.s88
-rw-r--r--asm/non_matchings/code_80005FD0/func_80014DE4.s70
-rw-r--r--asm/non_matchings/code_80005FD0/func_80019DF4.s26
-rw-r--r--include/waypoints.h2
-rw-r--r--src/code_80005FD0.c1195
-rw-r--r--src/code_80005FD0.h32
-rw-r--r--src/common_textures.h14
-rw-r--r--src/data/common_textures.inc.c151
-rw-r--r--tools/doxygen_syms.md64
15 files changed, 591 insertions, 2029 deletions
diff --git a/asm/non_matchings/code_80005FD0/func_80008424.s b/asm/non_matchings/code_80005FD0/func_80008424.s
deleted file mode 100644
index fe89fb24b..000000000
--- a/asm/non_matchings/code_80005FD0/func_80008424.s
+++ /dev/null
@@ -1,336 +0,0 @@
-.section .late_rodata
-
-glabel D_800ECF9C
-.float 3.3333333
-
-glabel D_800ECFA0
-.float 1.6666666
-
-.section .text
-
-glabel func_80008424
-/* 009024 80008424 27BDFFC8 */ addiu $sp, $sp, -0x38
-/* 009028 80008428 AFBF0014 */ sw $ra, 0x14($sp)
-/* 00902C 8000842C AFA40038 */ sw $a0, 0x38($sp)
-/* 009030 80008430 8CC300BC */ lw $v1, 0xbc($a2)
-/* 009034 80008434 44856000 */ mtc1 $a1, $f12
-/* 009038 80008438 00C03825 */ move $a3, $a2
-/* 00903C 8000843C 306E0080 */ andi $t6, $v1, 0x80
-/* 009040 80008440 15C00121 */ bnez $t6, .L800088C8
-/* 009044 80008444 C4C20094 */ lwc1 $f2, 0x94($a2)
-/* 009048 80008448 306F0040 */ andi $t7, $v1, 0x40
-/* 00904C 8000844C 15E0011E */ bnez $t7, .L800088C8
-/* 009050 80008450 0003C380 */ sll $t8, $v1, 0xe
-/* 009054 80008454 0702011D */ bltzl $t8, .L800088CC
-/* 009058 80008458 8FBF0014 */ lw $ra, 0x14($sp)
-/* 00905C 8000845C 8CC2000C */ lw $v0, 0xc($a2)
-/* 009060 80008460 0002CA40 */ sll $t9, $v0, 9
-/* 009064 80008464 07200118 */ bltz $t9, .L800088C8
-/* 009068 80008468 000249C0 */ sll $t1, $v0, 7
-/* 00906C 8000846C 05200116 */ bltz $t1, .L800088C8
-/* 009070 80008470 304A0002 */ andi $t2, $v0, 2
-/* 009074 80008474 15400114 */ bnez $t2, .L800088C8
-/* 009078 80008478 304B0004 */ andi $t3, $v0, 4
-/* 00907C 8000847C 15600112 */ bnez $t3, .L800088C8
-/* 009080 80008480 3C0C800E */ lui $t4, %hi(gCurrentCourseId)
-/* 009084 80008484 858CC5A0 */ lh $t4, %lo(gCurrentCourseId)($t4)
-/* 009088 80008488 24010014 */ li $at, 20
-/* 00908C 8000848C 00C02825 */ move $a1, $a2
-/* 009090 80008490 55810007 */ bnel $t4, $at, .L800084B0
-/* 009094 80008494 8FA60038 */ lw $a2, 0x38($sp)
-/* 009098 80008498 44061000 */ mfc1 $a2, $f2
-/* 00909C 8000849C 0C001FE9 */ jal func_80007FA4
-/* 0090A0 800084A0 00000000 */ nop
-/* 0090A4 800084A4 10000109 */ b .L800088CC
-/* 0090A8 800084A8 8FBF0014 */ lw $ra, 0x14($sp)
-/* 0090AC 800084AC 8FA60038 */ lw $a2, 0x38($sp)
-.L800084B0:
-/* 0090B0 800084B0 3C0E8016 */ lui $t6, %hi(D_801634D8) # 0x8016
-/* 0090B4 800084B4 24080001 */ li $t0, 1
-/* 0090B8 800084B8 00066840 */ sll $t5, $a2, 1
-/* 0090BC 800084BC 01CD7021 */ addu $t6, $t6, $t5
-/* 0090C0 800084C0 85CE34D8 */ lh $t6, %lo(D_801634D8)($t6) # 0x34d8($t6)
-/* 0090C4 800084C4 3C018000 */ lui $at, (0x80000200 >> 16) # lui $at, 0x8000
-/* 0090C8 800084C8 34210200 */ ori $at, (0x80000200 & 0xFFFF) # ori $at, $at, 0x200
-/* 0090CC 800084CC 150E0015 */ bne $t0, $t6, .L80008524
-/* 0090D0 800084D0 01A03025 */ move $a2, $t5
-/* 0090D4 800084D4 00617824 */ and $t7, $v1, $at
-/* 0090D8 800084D8 15E00012 */ bnez $t7, .L80008524
-/* 0090DC 800084DC 00E02025 */ move $a0, $a3
-/* 0090E0 800084E0 3C054120 */ lui $a1, 0x4120
-/* 0090E4 800084E4 0C00C7D2 */ jal func_80031F48
-/* 0090E8 800084E8 AFA70040 */ sw $a3, 0x40($sp)
-/* 0090EC 800084EC 8FA70040 */ lw $a3, 0x40($sp)
-/* 0090F0 800084F0 44802800 */ mtc1 $zero, $f5
-/* 0090F4 800084F4 44802000 */ mtc1 $zero, $f4
-/* 0090F8 800084F8 C4E6009C */ lwc1 $f6, 0x9c($a3)
-/* 0090FC 800084FC 46003221 */ cvt.d.s $f8, $f6
-/* 009100 80008500 46282032 */ c.eq.d $f4, $f8
-/* 009104 80008504 00000000 */ nop
-/* 009108 80008508 450200F0 */ bc1fl .L800088CC
-/* 00910C 8000850C 8FBF0014 */ lw $ra, 0x14($sp)
-/* 009110 80008510 44800000 */ mtc1 $zero, $f0
-/* 009114 80008514 00000000 */ nop
-/* 009118 80008518 E4E00034 */ swc1 $f0, 0x34($a3)
-/* 00911C 8000851C 100000EA */ b .L800088C8
-/* 009120 80008520 E4E0003C */ swc1 $f0, 0x3c($a3)
-.L80008524:
-/* 009124 80008524 3C02800E */ lui $v0, %hi(gCCSelection)
-/* 009128 80008528 8C42C548 */ lw $v0, %lo(gCCSelection)($v0)
-/* 00912C 8000852C 3C01800F */ lui $at, %hi(D_800ECF9C) # $at, 0x800f
-/* 009130 80008530 C420CF9C */ lwc1 $f0, %lo(D_800ECF9C)($at)
-/* 009134 80008534 10400009 */ beqz $v0, .L8000855C
-/* 009138 80008538 3C014020 */ li $at, 0x40200000 # 2.500000
-/* 00913C 8000853C 1048000D */ beq $v0, $t0, .L80008574
-/* 009140 80008540 24010002 */ li $at, 2
-/* 009144 80008544 10410008 */ beq $v0, $at, .L80008568
-/* 009148 80008548 24010003 */ li $at, 3
-/* 00914C 8000854C 5041000A */ beql $v0, $at, .L80008578
-/* 009150 80008550 4600103C */ c.lt.s $f2, $f0
-/* 009154 80008554 10000008 */ b .L80008578
-/* 009158 80008558 4600103C */ c.lt.s $f2, $f0
-.L8000855C:
-/* 00915C 8000855C 44810000 */ mtc1 $at, $f0
-/* 009160 80008560 10000005 */ b .L80008578
-/* 009164 80008564 4600103C */ c.lt.s $f2, $f0
-.L80008568:
-/* 009168 80008568 3C014070 */ li $at, 0x40700000 # 3.750000
-/* 00916C 8000856C 44810000 */ mtc1 $at, $f0
-/* 009170 80008570 00000000 */ nop
-.L80008574:
-/* 009174 80008574 4600103C */ c.lt.s $f2, $f0
-.L80008578:
-/* 009178 80008578 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
-/* 00917C 8000857C 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
-/* 009180 80008580 0061C024 */ and $t8, $v1, $at
-/* 009184 80008584 45000005 */ bc1f .L8000859C
-/* 009188 80008588 00E02025 */ move $a0, $a3
-/* 00918C 8000858C 0C00C3F2 */ jal player_speed
-/* 009190 80008590 ACF800BC */ sw $t8, 0xbc($a3)
-/* 009194 80008594 100000CD */ b .L800088CC
-/* 009198 80008598 8FBF0014 */ lw $ra, 0x14($sp)
-.L8000859C:
-/* 00919C 8000859C 94F90000 */ lhu $t9, ($a3)
-/* 0091A0 800085A0 3C0C8016 */ lui $t4, %hi(D_801631E0) # 0x8016
-/* 0091A4 800085A4 01866021 */ addu $t4, $t4, $a2
-/* 0091A8 800085A8 33290800 */ andi $t1, $t9, 0x800
-/* 0091AC 800085AC 11200014 */ beqz $t1, .L80008600
-/* 0091B0 800085B0 00000000 */ nop
-/* 0091B4 800085B4 460C103C */ c.lt.s $f2, $f12
-/* 0091B8 800085B8 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
-/* 0091BC 800085BC 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
-/* 0091C0 800085C0 00615824 */ and $t3, $v1, $at
-/* 0091C4 800085C4 45000009 */ bc1f .L800085EC
-/* 0091C8 800085C8 00E02025 */ move $a0, $a3
-/* 0091CC 800085CC 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
-/* 0091D0 800085D0 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
-/* 0091D4 800085D4 00615024 */ and $t2, $v1, $at
-/* 0091D8 800085D8 ACEA00BC */ sw $t2, 0xbc($a3)
-/* 0091DC 800085DC 0C00C3F2 */ jal player_speed
-/* 0091E0 800085E0 00E02025 */ move $a0, $a3
-/* 0091E4 800085E4 100000B9 */ b .L800088CC
-/* 0091E8 800085E8 8FBF0014 */ lw $ra, 0x14($sp)
-.L800085EC:
-/* 0091EC 800085EC ACEB00BC */ sw $t3, 0xbc($a3)
-/* 0091F0 800085F0 0C00C7D2 */ jal func_80031F48
-/* 0091F4 800085F4 3C053F80 */ lui $a1, 0x3f80
-/* 0091F8 800085F8 100000B4 */ b .L800088CC
-/* 0091FC 800085FC 8FBF0014 */ lw $ra, 0x14($sp)
-.L80008600:
-/* 009200 80008600 958C31E0 */ lhu $t4, %lo(D_801631E0)($t4) # 0x31e0($t4)
-/* 009204 80008604 3C0D8016 */ lui $t5, %hi(D_80163330) # 0x8016
-/* 009208 80008608 01A66821 */ addu $t5, $t5, $a2
-/* 00920C 8000860C 150C0023 */ bne $t0, $t4, .L8000869C
-/* 009210 80008610 3C028016 */ lui $v0, %hi(D_80163350) # 0x8016
-/* 009214 80008614 95AD3330 */ lhu $t5, %lo(D_80163330)($t5) # 0x3330($t5)
-/* 009218 80008618 8FA40038 */ lw $a0, 0x38($sp)
-/* 00921C 8000861C 3C058016 */ lui $a1, %hi(gLapCountByPlayerId + 0x2) # 0x8016
-/* 009220 80008620 510D001F */ beql $t0, $t5, .L800086A0
-/* 009224 80008624 00461021 */ addu $v0, $v0, $a2
-/* 009228 80008628 00041080 */ sll $v0, $a0, 2
-/* 00922C 8000862C 3C068016 */ lui $a2, %hi(D_80164408 + 0x2) # 0x8016
-/* 009230 80008630 00C23021 */ addu $a2, $a2, $v0
-/* 009234 80008634 00A22821 */ addu $a1, $a1, $v0
-/* 009238 80008638 84A54392 */ lh $a1, %lo(gLapCountByPlayerId + 0x2)($a1) # 0x4392($a1)
-/* 00923C 8000863C 84C6440A */ lh $a2, %lo(D_80164408 + 0x2)($a2) # 0x440a($a2)
-/* 009240 80008640 0C002236 */ jal func_800088D8
-/* 009244 80008644 AFA70040 */ sw $a3, 0x40($sp)
-/* 009248 80008648 24080001 */ li $t0, 1
-/* 00924C 8000864C 14480009 */ bne $v0, $t0, .L80008674
-/* 009250 80008650 8FA70040 */ lw $a3, 0x40($sp)
-/* 009254 80008654 8CEF00BC */ lw $t7, 0xbc($a3)
-/* 009258 80008658 3C010020 */ lui $at, 0x20
-/* 00925C 8000865C 00E02025 */ move $a0, $a3
-/* 009260 80008660 01E1C025 */ or $t8, $t7, $at
-/* 009264 80008664 0C00C3F2 */ jal player_speed
-/* 009268 80008668 ACF800BC */ sw $t8, 0xbc($a3)
-/* 00926C 8000866C 10000097 */ b .L800088CC
-/* 009270 80008670 8FBF0014 */ lw $ra, 0x14($sp)
-.L80008674:
-/* 009274 80008674 8CF900BC */ lw $t9, 0xbc($a3)
-/* 009278 80008678 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
-/* 00927C 8000867C 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
-/* 009280 80008680 03214824 */ and $t1, $t9, $at
-/* 009284 80008684 ACE900BC */ sw $t1, 0xbc($a3)
-/* 009288 80008688 00E02025 */ move $a0, $a3
-/* 00928C 8000868C 0C00C7D2 */ jal func_80031F48
-/* 009290 80008690 3C053F80 */ lui $a1, 0x3f80
-/* 009294 80008694 1000008D */ b .L800088CC
-/* 009298 80008698 8FBF0014 */ lw $ra, 0x14($sp)
-.L8000869C:
-/* 00929C 8000869C 00461021 */ addu $v0, $v0, $a2
-.L800086A0:
-/* 0092A0 800086A0 94423350 */ lhu $v0, %lo(D_80163350)($v0) # 0x3350($v0)
-/* 0092A4 800086A4 01002825 */ move $a1, $t0
-/* 0092A8 800086A8 5040003C */ beql $v0, $zero, .L8000879C
-/* 0092AC 800086AC 00002825 */ move $a1, $zero
-/* 0092B0 800086B0 10480008 */ beq $v0, $t0, .L800086D4
-/* 0092B4 800086B4 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
-/* 0092B8 800086B8 24010002 */ li $at, 2
-/* 0092BC 800086BC 10410026 */ beq $v0, $at, .L80008758
-/* 0092C0 800086C0 24010003 */ li $at, 3
-/* 0092C4 800086C4 10410014 */ beq $v0, $at, .L80008718
-/* 0092C8 800086C8 00E02025 */ move $a0, $a3
-/* 0092CC 800086CC 10000033 */ b .L8000879C
-/* 0092D0 800086D0 00002825 */ move $a1, $zero
-.L800086D4:
-/* 0092D4 800086D4 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
-/* 0092D8 800086D8 00615024 */ and $t2, $v1, $at
-/* 0092DC 800086DC ACEA00BC */ sw $t2, 0xbc($a3)
-/* 0092E0 800086E0 E7AC003C */ swc1 $f12, 0x3c($sp)
-/* 0092E4 800086E4 E7A20034 */ swc1 $f2, 0x34($sp)
-/* 0092E8 800086E8 AFA70040 */ sw $a3, 0x40($sp)
-/* 0092EC 800086EC AFA6001C */ sw $a2, 0x1c($sp)
-/* 0092F0 800086F0 AFA50028 */ sw $a1, 0x28($sp)
-/* 0092F4 800086F4 0C00C3F2 */ jal player_speed
-/* 0092F8 800086F8 00E02025 */ move $a0, $a3
-/* 0092FC 800086FC 8FA50028 */ lw $a1, 0x28($sp)
-/* 009300 80008700 8FA6001C */ lw $a2, 0x1c($sp)
-/* 009304 80008704 8FA70040 */ lw $a3, 0x40($sp)
-/* 009308 80008708 24080001 */ li $t0, 1
-/* 00930C 8000870C C7A20034 */ lwc1 $f2, 0x34($sp)
-/* 009310 80008710 10000022 */ b .L8000879C
-/* 009314 80008714 C7AC003C */ lwc1 $f12, 0x3c($sp)
-.L80008718:
-/* 009318 80008718 3C010020 */ lui $at, 0x20
-/* 00931C 8000871C 00615825 */ or $t3, $v1, $at
-/* 009320 80008720 ACEB00BC */ sw $t3, 0xbc($a3)
-/* 009324 80008724 E7AC003C */ swc1 $f12, 0x3c($sp)
-/* 009328 80008728 E7A20034 */ swc1 $f2, 0x34($sp)
-/* 00932C 8000872C AFA70040 */ sw $a3, 0x40($sp)
-/* 009330 80008730 AFA6001C */ sw $a2, 0x1c($sp)
-/* 009334 80008734 0C00C3F2 */ jal player_speed
-/* 009338 80008738 AFA50028 */ sw $a1, 0x28($sp)
-/* 00933C 8000873C 8FA50028 */ lw $a1, 0x28($sp)
-/* 009340 80008740 8FA6001C */ lw $a2, 0x1c($sp)
-/* 009344 80008744 8FA70040 */ lw $a3, 0x40($sp)
-/* 009348 80008748 24080001 */ li $t0, 1
-/* 00934C 8000874C C7A20034 */ lwc1 $f2, 0x34($sp)
-/* 009350 80008750 10000012 */ b .L8000879C
-/* 009354 80008754 C7AC003C */ lwc1 $f12, 0x3c($sp)
-.L80008758:
-/* 009358 80008758 3C0141A0 */ li $at, 0x41A00000 # 20.000000
-/* 00935C 8000875C 44815000 */ mtc1 $at, $f10
-/* 009360 80008760 3C014190 */ li $at, 0x41900000 # 18.000000
-/* 009364 80008764 44818000 */ mtc1 $at, $f16
-/* 009368 80008768 3C014358 */ li $at, 0x43580000 # 216.000000
-/* 00936C 8000876C 44813000 */ mtc1 $at, $f6
-/* 009370 80008770 46101483 */ div.s $f18, $f2, $f16
-/* 009374 80008774 3C01800F */ lui $at, %hi(D_800ECFA0) # $at, 0x800f
-/* 009378 80008778 46069102 */ mul.s $f4, $f18, $f6
-/* 00937C 8000877C 4604503C */ c.lt.s $f10, $f4
-/* 009380 80008780 00000000 */ nop
-/* 009384 80008784 45000002 */ bc1f .L80008790
-/* 009388 80008788 00000000 */ nop
-/* 00938C 8000878C C42CCFA0 */ lwc1 $f12, %lo(D_800ECFA0)($at)
-.L80008790:
-/* 009390 80008790 10000002 */ b .L8000879C
-/* 009394 80008794 00002825 */ move $a1, $zero
-/* 009398 80008798 00002825 */ move $a1, $zero
-.L8000879C:
-/* 00939C 8000879C 50A8004B */ beql $a1, $t0, .L800088CC
-/* 0093A0 800087A0 8FBF0014 */ lw $ra, 0x14($sp)
-/* 0093A4 800087A4 460C103C */ c.lt.s $f2, $f12
-/* 0093A8 800087A8 3C0C800E */ lui $t4, %hi(gDemoMode)
-/* 0093AC 800087AC 45020035 */ bc1fl .L80008884
-/* 0093B0 800087B0 8CEB00BC */ lw $t3, 0xbc($a3)
-/* 0093B4 800087B4 958CC51C */ lhu $t4, %lo(gDemoMode)($t4)
-/* 0093B8 800087B8 3C0E8016 */ lui $t6, %hi(D_80163330) # 0x8016
-/* 0093BC 800087BC 3C0D800E */ lui $t5, %hi(gCurrentCourseId)
-/* 0093C0 800087C0 150C0009 */ bne $t0, $t4, .L800087E8
-/* 0093C4 800087C4 01C67021 */ addu $t6, $t6, $a2
-/* 0093C8 800087C8 85ADC5A0 */ lh $t5, %lo(gCurrentCourseId)($t5)
-/* 0093CC 800087CC 24010014 */ li $at, 20
-/* 0093D0 800087D0 11A10005 */ beq $t5, $at, .L800087E8
-/* 0093D4 800087D4 00000000 */ nop
-/* 0093D8 800087D8 0C00C3F2 */ jal player_speed
-/* 0093DC 800087DC 00E02025 */ move $a0, $a3
-/* 0093E0 800087E0 1000003A */ b .L800088CC
-/* 0093E4 800087E4 8FBF0014 */ lw $ra, 0x14($sp)
-.L800087E8:
-/* 0093E8 800087E8 95CE3330 */ lhu $t6, %lo(D_80163330)($t6) # 0x3330($t6)
-/* 0093EC 800087EC 8FA40038 */ lw $a0, 0x38($sp)
-/* 0093F0 800087F0 3C058016 */ lui $a1, %hi(gLapCountByPlayerId + 0x2) # 0x8016
-/* 0093F4 800087F4 150E0006 */ bne $t0, $t6, .L80008810
-/* 0093F8 800087F8 00041080 */ sll $v0, $a0, 2
-/* 0093FC 800087FC 8FA40038 */ lw $a0, 0x38($sp)
-/* 009400 80008800 0C001F41 */ jal func_80007D04
-/* 009404 80008804 00E02825 */ move $a1, $a3
-/* 009408 80008808 10000030 */ b .L800088CC
-/* 00940C 8000880C 8FBF0014 */ lw $ra, 0x14($sp)
-.L80008810:
-/* 009410 80008810 3C068016 */ lui $a2, %hi(D_80164408 + 0x2) # 0x8016
-/* 009414 80008814 00C23021 */ addu $a2, $a2, $v0
-/* 009418 80008818 00A22821 */ addu $a1, $a1, $v0
-/* 00941C 8000881C 84A54392 */ lh $a1, %lo(gLapCountByPlayerId + 0x2)($a1) # 0x4392($a1)
-/* 009420 80008820 84C6440A */ lh $a2, %lo(D_80164408 + 0x2)($a2) # 0x440a($a2)
-/* 009424 80008824 0C002236 */ jal func_800088D8
-/* 009428 80008828 AFA70040 */ sw $a3, 0x40($sp)
-/* 00942C 8000882C 24080001 */ li $t0, 1
-/* 009430 80008830 14480009 */ bne $v0, $t0, .L80008858
-/* 009434 80008834 8FA70040 */ lw $a3, 0x40($sp)
-/* 009438 80008838 8CF800BC */ lw $t8, 0xbc($a3)
-/* 00943C 8000883C 3C010020 */ lui $at, 0x20
-/* 009440 80008840 00E02025 */ move $a0, $a3
-/* 009444 80008844 0301C825 */ or $t9, $t8, $at
-/* 009448 80008848 0C00C3F2 */ jal player_speed
-/* 00944C 8000884C ACF900BC */ sw $t9, 0xbc($a3)
-/* 009450 80008850 1000001E */ b .L800088CC
-/* 009454 80008854 8FBF0014 */ lw $ra, 0x14($sp)
-.L80008858:
-/* 009458 80008858 8CE900BC */ lw $t1, 0xbc($a3)
-/* 00945C 8000885C 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
-/* 009460 80008860 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
-/* 009464 80008864 01215024 */ and $t2, $t1, $at
-/* 009468 80008868 ACEA00BC */ sw $t2, 0xbc($a3)
-/* 00946C 8000886C 00E02025 */ move $a0, $a3
-/* 009470 80008870 0C00C7D2 */ jal func_80031F48
-/* 009474 80008874 3C053F80 */ lui $a1, 0x3f80
-/* 009478 80008878 10000014 */ b .L800088CC
-/* 00947C 8000887C 8FBF0014 */ lw $ra, 0x14($sp)
-/* 009480 80008880 8CEB00BC */ lw $t3, 0xbc($a3)
-.L80008884:
-/* 009484 80008884 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
-/* 009488 80008888 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
-/* 00948C 8000888C 01616024 */ and $t4, $t3, $at
-/* 009490 80008890 3C013F80 */ li $at, 0x3F800000 # 1.000000
-/* 009494 80008894 44814000 */ mtc1 $at, $f8
-/* 009498 80008898 ACEC00BC */ sw $t4, 0xbc($a3)
-/* 00949C 8000889C 3C054000 */ lui $a1, 0x4000
-/* 0094A0 800088A0 460C403C */ c.lt.s $f8, $f12
-/* 0094A4 800088A4 00E02025 */ move $a0, $a3
-/* 0094A8 800088A8 45000005 */ bc1f .L800088C0
-/* 0094AC 800088AC 00000000 */ nop
-/* 0094B0 800088B0 0C00C7D2 */ jal func_80031F48
-/* 0094B4 800088B4 00E02025 */ move $a0, $a3
-/* 0094B8 800088B8 10000004 */ b .L800088CC
-/* 0094BC 800088BC 8FBF0014 */ lw $ra, 0x14($sp)
-.L800088C0:
-/* 0094C0 800088C0 0C00C7D2 */ jal func_80031F48
-/* 0094C4 800088C4 3C0540A0 */ lui $a1, 0x40a0
-.L800088C8:
-/* 0094C8 800088C8 8FBF0014 */ lw $ra, 0x14($sp)
-.L800088CC:
-/* 0094CC 800088CC 27BD0038 */ addiu $sp, $sp, 0x38
-/* 0094D0 800088D0 03E00008 */ jr $ra
-/* 0094D4 800088D4 00000000 */ nop
diff --git a/asm/non_matchings/code_80005FD0/func_8000D100.s b/asm/non_matchings/code_80005FD0/func_8000D100.s
deleted file mode 100644
index 1adb23386..000000000
--- a/asm/non_matchings/code_80005FD0/func_8000D100.s
+++ /dev/null
@@ -1,98 +0,0 @@
-.section .late_rodata
-
-glabel D_800ECFF8
-.float 250000
-
-.section .text
-
-glabel func_8000D100
-/* 00DD00 8000D100 00077400 */ sll $t6, $a3, 0x10
-/* 00DD04 8000D104 000E7C03 */ sra $t7, $t6, 0x10
-/* 00DD08 8000D108 25E4FFFE */ addiu $a0, $t7, -2
-/* 00DD0C 8000D10C 27BDFFF0 */ addiu $sp, $sp, -0x10
-/* 00DD10 8000D110 3C01800F */ lui $at, %hi(D_800ECFF8) # $at, 0x800f
-/* 00DD14 8000D114 0004CC00 */ sll $t9, $a0, 0x10
-/* 00DD18 8000D118 F7B40008 */ sdc1 $f20, 8($sp)
-/* 00DD1C 8000D11C C420CFF8 */ lwc1 $f0, %lo(D_800ECFF8)($at)
-/* 00DD20 8000D120 00195403 */ sra $t2, $t9, 0x10
-/* 00DD24 8000D124 00041400 */ sll $v0, $a0, 0x10
-/* 00DD28 8000D128 25E50007 */ addiu $a1, $t7, 7
-/* 00DD2C 8000D12C 4486A000 */ mtc1 $a2, $f20
-/* 00DD30 8000D130 AFA7001C */ sw $a3, 0x1c($sp)
-/* 00DD34 8000D134 0145082A */ slt $at, $t2, $a1
-/* 00DD38 8000D138 0002C403 */ sra $t8, $v0, 0x10
-/* 00DD3C 8000D13C 01E03825 */ move $a3, $t7
-/* 00DD40 8000D140 E7AE0014 */ swc1 $f14, 0x14($sp)
-/* 00DD44 8000D144 2403FFFF */ li $v1, -1
-/* 00DD48 8000D148 10200037 */ beqz $at, .L8000D228
-/* 00DD4C 8000D14C 03001025 */ move $v0, $t8
-/* 00DD50 8000D150 3C068016 */ lui $a2, %hi(D_8016359C) # $a2, 0x8016
-/* 00DD54 8000D154 3C098016 */ lui $t1, %hi(D_80163598) # $t1, 0x8016
-/* 00DD58 8000D158 8D293598 */ lw $t1, %lo(D_80163598)($t1)
-/* 00DD5C 8000D15C 8CC6359C */ lw $a2, %lo(D_8016359C)($a2)
-.L8000D160:
-/* 00DD60 8000D160 00022400 */ sll $a0, $v0, 0x10
-/* 00DD64 8000D164 00045C03 */ sra $t3, $a0, 0x10
-/* 00DD68 8000D168 04410005 */ bgez $v0, .L8000D180
-/* 00DD6C 8000D16C 01602025 */ move $a0, $t3
-/* 00DD70 8000D170 00462021 */ addu $a0, $v0, $a2
-/* 00DD74 8000D174 00046400 */ sll $t4, $a0, 0x10
-/* 00DD78 8000D178 000C6C03 */ sra $t5, $t4, 0x10
-/* 00DD7C 8000D17C 01A02025 */ move $a0, $t5
-.L8000D180:
-/* 00DD80 8000D180 0086001A */ div $zero, $a0, $a2
-/* 00DD84 8000D184 14C00002 */ bnez $a2, .L8000D190
-/* 00DD88 8000D188 00000000 */ nop
-/* 00DD8C 8000D18C 0007000D */ break 7
-.L8000D190:
-/* 00DD90 8000D190 2401FFFF */ li $at, -1
-/* 00DD94 8000D194 14C10004 */ bne $a2, $at, .L8000D1A8
-/* 00DD98 8000D198 3C018000 */ lui $at, 0x8000
-/* 00DD9C 8000D19C 14810002 */ bne $a0, $at, .L8000D1A8
-/* 00DDA0 8000D1A0 00000000 */ nop
-/* 00DDA4 8000D1A4 0006000D */ break 6
-.L8000D1A8:
-/* 00DDA8 8000D1A8 00002010 */ mfhi $a0
-/* 00DDAC 8000D1AC 00047400 */ sll $t6, $a0, 0x10
-/* 00DDB0 8000D1B0 000E7C03 */ sra $t7, $t6, 0x10
-/* 00DDB4 8000D1B4 000FC080 */ sll $t8, $t7, 2
-/* 00DDB8 8000D1B8 03094021 */ addu $t0, $t8, $t1
-/* 00DDBC 8000D1BC 85190000 */ lh $t9, ($t0)
-/* 00DDC0 8000D1C0 850A0002 */ lh $t2, 2($t0)
-/* 00DDC4 8000D1C4 24420001 */ addiu $v0, $v0, 1
-/* 00DDC8 8000D1C8 44992000 */ mtc1 $t9, $f4
-/* 00DDCC 8000D1CC 448A4000 */ mtc1 $t2, $f8
-/* 00DDD0 8000D1D0 00026400 */ sll $t4, $v0, 0x10
-/* 00DDD4 8000D1D4 468021A0 */ cvt.s.w $f6, $f4
-/* 00DDD8 8000D1D8 000C6C03 */ sra $t5, $t4, 0x10
-/* 00DDDC 8000D1DC 01A5082A */ slt $at, $t5, $a1
-/* 00DDE0 8000D1E0 01E02025 */ move $a0, $t7
-/* 00DDE4 8000D1E4 468042A0 */ cvt.s.w $f10, $f8
-/* 00DDE8 8000D1E8 460C3081 */ sub.s $f2, $f6, $f12
-/* 00DDEC 8000D1EC 46145381 */ sub.s $f14, $f10, $f20
-/* 00DDF0 8000D1F0 46021482 */ mul.s $f18, $f2, $f2
-/* 00DDF4 8000D1F4 00000000 */ nop
-/* 00DDF8 8000D1F8 460E7102 */ mul.s $f4, $f14, $f14
-/* 00DDFC 8000D1FC 46049400 */ add.s $f16, $f18, $f4
-/* 00DE00 8000D200 4600803C */ c.lt.s $f16, $f0
-/* 00DE04 8000D204 00000000 */ nop
-/* 00DE08 8000D208 45000005 */ bc1f .L8000D220
-/* 00DE0C 8000D20C 00000000 */ nop
-/* 00DE10 8000D210 00041C00 */ sll $v1, $a0, 0x10
-/* 00DE14 8000D214 00035C03 */ sra $t3, $v1, 0x10
-/* 00DE18 8000D218 46008006 */ mov.s $f0, $f16
-/* 00DE1C 8000D21C 01601825 */ move $v1, $t3
-.L8000D220:
-/* 00DE20 8000D220 1420FFCF */ bnez $at, .L8000D160
-/* 00DE24 8000D224 01A01025 */ move $v0, $t5
-.L8000D228:
-/* 00DE28 8000D228 2401FFFF */ li $at, -1
-/* 00DE2C 8000D22C 14610004 */ bne $v1, $at, .L8000D240
-/* 00DE30 8000D230 D7B40008 */ ldc1 $f20, 8($sp)
-/* 00DE34 8000D234 00071C00 */ sll $v1, $a3, 0x10
-/* 00DE38 8000D238 00037403 */ sra $t6, $v1, 0x10
-/* 00DE3C 8000D23C 01C01825 */ move $v1, $t6
-.L8000D240:
-/* 00DE40 8000D240 00601025 */ move $v0, $v1
-/* 00DE44 8000D244 03E00008 */ jr $ra
-/* 00DE48 8000D248 27BD0010 */ addiu $sp, $sp, 0x10
diff --git a/asm/non_matchings/code_80005FD0/func_8000D6D0.s b/asm/non_matchings/code_80005FD0/func_8000D6D0.s
deleted file mode 100644
index 97002cc29..000000000
--- a/asm/non_matchings/code_80005FD0/func_8000D6D0.s
+++ /dev/null
@@ -1,170 +0,0 @@
-.section .late_rodata
-
-glabel D_800ECFFC
-.float 0.01
-
-.section .text
-
-glabel func_8000D6D0
-/* 00E2D0 8000D6D0 27BDFF50 */ addiu $sp, $sp, -0xb0
-/* 00E2D4 8000D6D4 87AE00C2 */ lh $t6, 0xc2($sp)
-/* 00E2D8 8000D6D8 3C188016 */ lui $t8, %hi(D_80164550) # 0x8016
-/* 00E2DC 8000D6DC AFBF003C */ sw $ra, 0x3c($sp)
-/* 00E2E0 8000D6E0 000E7880 */ sll $t7, $t6, 2
-/* 00E2E4 8000D6E4 030FC021 */ addu $t8, $t8, $t7
-/* 00E2E8 8000D6E8 8F184550 */ lw $t8, %lo(D_80164550)($t8) # 0x4550($t8)
-/* 00E2EC 8000D6EC AFB00038 */ sw $s0, 0x38($sp)
-/* 00E2F0 8000D6F0 F7B80030 */ sdc1 $f24, 0x30($sp)
-/* 00E2F4 8000D6F4 F7B60028 */ sdc1 $f22, 0x28($sp)
-/* 00E2F8 8000D6F8 F7B40020 */ sdc1 $f20, 0x20($sp)
-/* 00E2FC 8000D6FC AFA500B4 */ sw $a1, 0xb4($sp)
-/* 00E300 8000D700 AFA600B8 */ sw $a2, 0xb8($sp)
-/* 00E304 8000D704 AFA700BC */ sw $a3, 0xbc($sp)
-/* 00E308 8000D708 AFB8004C */ sw $t8, 0x4c($sp)
-/* 00E30C 8000D70C C4840000 */ lwc1 $f4, ($a0)
-/* 00E310 8000D710 00808025 */ move $s0, $a0
-/* 00E314 8000D714 E7A40050 */ swc1 $f4, 0x50($sp)
-/* 00E318 8000D718 C4860004 */ lwc1 $f6, 4($a0)
-/* 00E31C 8000D71C E7A60054 */ swc1 $f6, 0x54($sp)
-/* 00E320 8000D720 C4880008 */ lwc1 $f8, 8($a0)
-/* 00E324 8000D724 E7A80058 */ swc1 $f8, 0x58($sp)
-/* 00E328 8000D728 C4980008 */ lwc1 $f24, 8($a0)
-/* 00E32C 8000D72C C4940000 */ lwc1 $f20, ($a0)
-/* 00E330 8000D730 C4960004 */ lwc1 $f22, 4($a0)
-/* 00E334 8000D734 84A70000 */ lh $a3, ($a1)
-/* 00E338 8000D738 4406C000 */ mfc1 $a2, $f24
-/* 00E33C 8000D73C AFAE0010 */ sw $t6, 0x10($sp)
-/* 00E340 8000D740 4600A306 */ mov.s $f12, $f20
-/* 00E344 8000D744 0C0034AD */ jal func_8000D2B4
-/* 00E348 8000D748 4600B386 */ mov.s $f14, $f22
-/* 00E34C 8000D74C 87A600C2 */ lh $a2, 0xc2($sp)
-/* 00E350 8000D750 8FA900B4 */ lw $t1, 0xb4($sp)
-/* 00E354 8000D754 3C078016 */ lui $a3, %hi(gWaypointCountByPathIndex) # 0x8016
-/* 00E358 8000D758 00065840 */ sll $t3, $a2, 1
-/* 00E35C 8000D75C 00EB3821 */ addu $a3, $a3, $t3
-/* 00E360 8000D760 A5220000 */ sh $v0, ($t1)
-/* 00E364 8000D764 94E745C8 */ lhu $a3, %lo(gWaypointCountByPathIndex)($a3) # 0x45c8($a3)
-/* 00E368 8000D768 87AA00C6 */ lh $t2, 0xc6($sp)
-/* 00E36C 8000D76C 8FA500BC */ lw $a1, 0xbc($sp)
-/* 00E370 8000D770 004A1821 */ addu $v1, $v0, $t2
-/* 00E374 8000D774 0067001A */ div $zero, $v1, $a3
-/* 00E378 8000D778 246F0001 */ addiu $t7, $v1, 1
-/* 00E37C 8000D77C 00004010 */ mfhi $t0
-/* 00E380 8000D780 00086400 */ sll $t4, $t0, 0x10
-/* 00E384 8000D784 14E00002 */ bnez $a3, .L8000D790
-/* 00E388 8000D788 00000000 */ nop
-/* 00E38C 8000D78C 0007000D */ break 7
-.L8000D790:
-/* 00E390 8000D790 2401FFFF */ li $at, -1
-/* 00E394 8000D794 14E10004 */ bne $a3, $at, .L8000D7A8
-/* 00E398 8000D798 3C018000 */ li $at, 0x80000000 # -0.000000
-/* 00E39C 8000D79C 14610002 */ bne $v1, $at, .L8000D7A8
-/* 00E3A0 8000D7A0 00000000 */ nop
-/* 00E3A4 8000D7A4 0006000D */ break 6
-.L8000D7A8:
-/* 00E3A8 8000D7A8 01E7001A */ div $zero, $t7, $a3
-/* 00E3AC 8000D7AC 000C6C03 */ sra $t5, $t4, 0x10
-/* 00E3B0 8000D7B0 01A04025 */ move $t0, $t5
-/* 00E3B4 8000D7B4 0000C010 */ mfhi $t8
-/* 00E3B8 8000D7B8 A7B8009E */ sh $t8, 0x9e($sp)
-/* 00E3BC 8000D7BC 14E00002 */ bnez $a3, .L8000D7C8
-/* 00E3C0 8000D7C0 00000000 */ nop
-/* 00E3C4 8000D7C4 0007000D */ break 7
-.L8000D7C8:
-/* 00E3C8 8000D7C8 2401FFFF */ li $at, -1
-/* 00E3CC 8000D7CC 14E10004 */ bne $a3, $at, .L8000D7E0
-/* 00E3D0 8000D7D0 3C018000 */ li $at, 0x80000000 # -0.000000
-/* 00E3D4 8000D7D4 15E10002 */ bne $t7, $at, .L8000D7E0
-/* 00E3D8 8000D7D8 00000000 */ nop
-/* 00E3DC 8000D7DC 0006000D */ break 6
-.L8000D7E0:
-/* 00E3E0 8000D7E0 3104FFFF */ andi $a0, $t0, 0xffff
-/* 00E3E4 8000D7E4 0C002EF6 */ jal func_8000BBD8
-/* 00E3E8 8000D7E8 A7A800A0 */ sh $t0, 0xa0($sp)
-/* 00E3EC 8000D7EC 3C028016 */ lui $v0, %hi(D_80162FA0) # $v0, 0x8016
-/* 00E3F0 8000D7F0 24422FA0 */ addiu $v0, %lo(D_80162FA0) # addiu $v0, $v0, 0x2fa0
-/* 00E3F4 8000D7F4 C44A0000 */ lwc1 $f10, ($v0)
-/* 00E3F8 8000D7F8 C4440008 */ lwc1 $f4, 8($v0)
-/* 00E3FC 8000D7FC 97A4009E */ lhu $a0, 0x9e($sp)
-/* 00E400 8000D800 8FA500BC */ lw $a1, 0xbc($sp)
-/* 00E404 8000D804 87A600C2 */ lh $a2, 0xc2($sp)
-/* 00E408 8000D808 E7AA0098 */ swc1 $f10, 0x98($sp)
-/* 00E40C 8000D80C 0C002EF6 */ jal func_8000BBD8
-/* 00E410 8000D810 E7A40090 */ swc1 $f4, 0x90($sp)
-/* 00E414 8000D814 8FA3004C */ lw $v1, 0x4c($sp)
-/* 00E418 8000D818 87B9009E */ lh $t9, 0x9e($sp)
-/* 00E41C 8000D81C 87AB00A0 */ lh $t3, 0xa0($sp)
-/* 00E420 8000D820 3C028016 */ lui $v0, %hi(D_80162FA0) # $v0, 0x8016
-/* 00E424 8000D824 001970C0 */ sll $t6, $t9, 3
-/* 00E428 8000D828 000B60C0 */ sll $t4, $t3, 3
-/* 00E42C 8000D82C 006C6821 */ addu $t5, $v1, $t4
-/* 00E430 8000D830 006E4821 */ addu $t1, $v1, $t6
-/* 00E434 8000D834 852A0002 */ lh $t2, 2($t1)
-/* 00E438 8000D838 85AF0002 */ lh $t7, 2($t5)
-/* 00E43C 8000D83C 24422FA0 */ addiu $v0, %lo(D_80162FA0) # addiu $v0, $v0, 0x2fa0
-/* 00E440 8000D840 3C013F00 */ li $at, 0x3F000000 # 0.500000
-/* 00E444 8000D844 014FC021 */ addu $t8, $t2, $t7
-/* 00E448 8000D848 44983000 */ mtc1 $t8, $f6
-/* 00E44C 8000D84C C4400000 */ lwc1 $f0, ($v0)
-/* 00E450 8000D850 44815000 */ mtc1 $at, $f10
-/* 00E454 8000D854 46803220 */ cvt.s.w $f8, $f6
-/* 00E458 8000D858 C7A40098 */ lwc1 $f4, 0x98($sp)
-/* 00E45C 8000D85C C4420008 */ lwc1 $f2, 8($v0)
-/* 00E460 8000D860 46002180 */ add.s $f6, $f4, $f0
-/* 00E464 8000D864 460A4382 */ mul.s $f14, $f8, $f10
-/* 00E468 8000D868 44814000 */ mtc1 $at, $f8
-/* 00E46C 8000D86C C7A40090 */ lwc1 $f4, 0x90($sp)
-/* 00E470 8000D870 46083282 */ mul.s $f10, $f6, $f8
-/* 00E474 8000D874 46022180 */ add.s $f6, $f4, $f2
-/* 00E478 8000D878 44814000 */ mtc1 $at, $f8
-/* 00E47C 8000D87C 46167481 */ sub.s $f18, $f14, $f22
-/* 00E480 8000D880 46145401 */ sub.s $f16, $f10, $f20
-/* 00E484 8000D884 46083282 */ mul.s $f10, $f6, $f8
-/* 00E488 8000D888 E7B20044 */ swc1 $f18, 0x44($sp)
-/* 00E48C 8000D88C E7B00048 */ swc1 $f16, 0x48($sp)
-/* 00E490 8000D890 46185101 */ sub.s $f4, $f10, $f24
-/* 00E494 8000D894 46042182 */ mul.s $f6, $f4, $f4
-/* 00E498 8000D898 E7A40040 */ swc1 $f4, 0x40($sp)
-/* 00E49C 8000D89C 46108202 */ mul.s $f8, $f16, $f16
-/* 00E4A0 8000D8A0 00000000 */ nop
-/* 00E4A4 8000D8A4 46129282 */ mul.s $f10, $f18, $f18
-/* 00E4A8 8000D8A8 460A4100 */ add.s $f4, $f8, $f10
-/* 00E4AC 8000D8AC 0C033850 */ jal sqrtf
-/* 00E4B0 8000D8B0 46062300 */ add.s $f12, $f4, $f6
-/* 00E4B4 8000D8B4 3C01800F */ lui $at, %hi(D_800ECFFC) # $at, 0x800f
-/* 00E4B8 8000D8B8 C428CFFC */ lwc1 $f8, %lo(D_800ECFFC)($at)
-/* 00E4BC 8000D8BC C7B00048 */ lwc1 $f16, 0x48($sp)
-/* 00E4C0 8000D8C0 C7B20044 */ lwc1 $f18, 0x44($sp)
-/* 00E4C4 8000D8C4 4600403C */ c.lt.s $f8, $f0
-/* 00E4C8 8000D8C8 C7AA00B8 */ lwc1 $f10, 0xb8($sp)
-/* 00E4CC 8000D8CC 27A40050 */ addiu $a0, $sp, 0x50
-/* 00E4D0 8000D8D0 02002825 */ move $a1, $s0
-/* 00E4D4 8000D8D4 4502000D */ bc1fl .L8000D90C
-/* 00E4D8 8000D8D8 4600A086 */ mov.s $f2, $f20
-/* 00E4DC 8000D8DC 460A8102 */ mul.s $f4, $f16, $f10
-/* 00E4E0 8000D8E0 46002183 */ div.s $f6, $f4, $f0
-/* 00E4E4 8000D8E4 460A9202 */ mul.s $f8, $f18, $f10
-/* 00E4E8 8000D8E8 46004103 */ div.s $f4, $f8, $f0
-/* 00E4EC 8000D8EC 46143080 */ add.s $f2, $f6, $f20
-/* 00E4F0 8000D8F0 C7A60040 */ lwc1 $f6, 0x40($sp)
-/* 00E4F4 8000D8F4 460A3202 */ mul.s $f8, $f6, $f10
-/* 00E4F8 8000D8F8 46162300 */ add.s $f12, $f4, $f22
-/* 00E4FC 8000D8FC 46004103 */ div.s $f4, $f8, $f0
-/* 00E500 8000D900 10000004 */ b .L8000D914
-/* 00E504 8000D904 46182380 */ add.s $f14, $f4, $f24
-/* 00E508 8000D908 4600A086 */ mov.s $f2, $f20
-.L8000D90C:
-/* 00E50C 8000D90C 4600B306 */ mov.s $f12, $f22
-/* 00E510 8000D910 4600C386 */ mov.s $f14, $f24
-.L8000D914:
-/* 00E514 8000D914 E6020000 */ swc1 $f2, ($s0)
-/* 00E518 8000D918 E60C0004 */ swc1 $f12, 4($s0)
-/* 00E51C 8000D91C 0C0017F4 */ jal func_80005FD0
-/* 00E520 8000D920 E60E0008 */ swc1 $f14, 8($s0)
-/* 00E524 8000D924 8FBF003C */ lw $ra, 0x3c($sp)
-/* 00E528 8000D928 D7B40020 */ ldc1 $f20, 0x20($sp)
-/* 00E52C 8000D92C D7B60028 */ ldc1 $f22, 0x28($sp)
-/* 00E530 8000D930 D7B80030 */ ldc1 $f24, 0x30($sp)
-/* 00E534 8000D934 8FB00038 */ lw $s0, 0x38($sp)
-/* 00E538 8000D938 03E00008 */ jr $ra
-/* 00E53C 8000D93C 27BD00B0 */ addiu $sp, $sp, 0xb0
diff --git a/asm/non_matchings/code_80005FD0/func_8000D940.s b/asm/non_matchings/code_80005FD0/func_8000D940.s
deleted file mode 100644
index 64974e065..000000000
--- a/asm/non_matchings/code_80005FD0/func_8000D940.s
+++ /dev/null
@@ -1,169 +0,0 @@
-.section .late_rodata
-
-glabel D_800ED000
-.float 0.01
-
-.section .text
-
-glabel func_8000D940
-/* 00E540 8000D940 27BDFF48 */ addiu $sp, $sp, -0xb8
-/* 00E544 8000D944 AFBF003C */ sw $ra, 0x3c($sp)
-/* 00E548 8000D948 AFB00038 */ sw $s0, 0x38($sp)
-/* 00E54C 8000D94C F7B80030 */ sdc1 $f24, 0x30($sp)
-/* 00E550 8000D950 F7B60028 */ sdc1 $f22, 0x28($sp)
-/* 00E554 8000D954 F7B40020 */ sdc1 $f20, 0x20($sp)
-/* 00E558 8000D958 AFA500BC */ sw $a1, 0xbc($sp)
-/* 00E55C 8000D95C AFA600C0 */ sw $a2, 0xc0($sp)
-/* 00E560 8000D960 AFA700C4 */ sw $a3, 0xc4($sp)
-/* 00E564 8000D964 C4840000 */ lwc1 $f4, ($a0)
-/* 00E568 8000D968 87AE00CA */ lh $t6, 0xca($sp)
-/* 00E56C 8000D96C 3C088016 */ lui $t0, %hi(gWaypointCountByPathIndex) # 0x8016
-/* 00E570 8000D970 E7A40054 */ swc1 $f4, 0x54($sp)
-/* 00E574 8000D974 C4860004 */ lwc1 $f6, 4($a0)
-/* 00E578 8000D978 000E7840 */ sll $t7, $t6, 1
-/* 00E57C 8000D97C 010F4021 */ addu $t0, $t0, $t7
-/* 00E580 8000D980 E7A60058 */ swc1 $f6, 0x58($sp)
-/* 00E584 8000D984 C4880008 */ lwc1 $f8, 8($a0)
-/* 00E588 8000D988 950845C8 */ lhu $t0, %lo(gWaypointCountByPathIndex)($t0) # 0x45c8($t0)
-/* 00E58C 8000D98C 00808025 */ move $s0, $a0
-/* 00E590 8000D990 E7A8005C */ swc1 $f8, 0x5c($sp)
-/* 00E594 8000D994 C4980008 */ lwc1 $f24, 8($a0)
-/* 00E598 8000D998 C4940000 */ lwc1 $f20, ($a0)
-/* 00E59C 8000D99C C4960004 */ lwc1 $f22, 4($a0)
-/* 00E5A0 8000D9A0 84A70000 */ lh $a3, ($a1)
-/* 00E5A4 8000D9A4 4406C000 */ mfc1 $a2, $f24
-/* 00E5A8 8000D9A8 AFAE0010 */ sw $t6, 0x10($sp)
-/* 00E5AC 8000D9AC AFA80060 */ sw $t0, 0x60($sp)
-/* 00E5B0 8000D9B0 4600A306 */ mov.s $f12, $f20
-/* 00E5B4 8000D9B4 0C0034AD */ jal func_8000D2B4
-/* 00E5B8 8000D9B8 4600B386 */ mov.s $f14, $f22
-/* 00E5BC 8000D9BC 8FA80060 */ lw $t0, 0x60($sp)
-/* 00E5C0 8000D9C0 8FB900BC */ lw $t9, 0xbc($sp)
-/* 00E5C4 8000D9C4 00481821 */ addu $v1, $v0, $t0
-/* 00E5C8 8000D9C8 2469FFFD */ addiu $t1, $v1, -3
-/* 00E5CC 8000D9CC 0128001A */ div $zero, $t1, $t0
-/* 00E5D0 8000D9D0 246AFFFC */ addiu $t2, $v1, -4
-/* 00E5D4 8000D9D4 00003810 */ mfhi $a3
-/* 00E5D8 8000D9D8 A7220000 */ sh $v0, ($t9)
-/* 00E5DC 8000D9DC 15000002 */ bnez $t0, .L8000D9E8
-/* 00E5E0 8000D9E0 00000000 */ nop
-/* 00E5E4 8000D9E4 0007000D */ break 7
-.L8000D9E8:
-/* 00E5E8 8000D9E8 2401FFFF */ li $at, -1
-/* 00E5EC 8000D9EC 15010004 */ bne $t0, $at, .L8000DA00
-/* 00E5F0 8000D9F0 3C018000 */ li $at, 0x80000000 # -0.000000
-/* 00E5F4 8000D9F4 15210002 */ bne $t1, $at, .L8000DA00
-/* 00E5F8 8000D9F8 00000000 */ nop
-/* 00E5FC 8000D9FC 0006000D */ break 6
-.L8000DA00:
-/* 00E600 8000DA00 0148001A */ div $zero, $t2, $t0
-/* 00E604 8000DA04 00005810 */ mfhi $t3
-/* 00E608 8000DA08 00E06025 */ move $t4, $a3
-/* 00E60C 8000DA0C A7A700A8 */ sh $a3, 0xa8($sp)
-/* 00E610 8000DA10 15000002 */ bnez $t0, .L8000DA1C
-/* 00E614 8000DA14 00000000 */ nop
-/* 00E618 8000DA18 0007000D */ break 7
-.L8000DA1C:
-/* 00E61C 8000DA1C 2401FFFF */ li $at, -1
-/* 00E620 8000DA20 15010004 */ bne $t0, $at, .L8000DA34
-/* 00E624 8000DA24 3C018000 */ li $at, 0x80000000 # -0.000000
-/* 00E628 8000DA28 15410002 */ bne $t2, $at, .L8000DA34
-/* 00E62C 8000DA2C 00000000 */ nop
-/* 00E630 8000DA30 0006000D */ break 6
-.L8000DA34:
-/* 00E634 8000DA34 A7AB00A6 */ sh $t3, 0xa6($sp)
-/* 00E638 8000DA38 3184FFFF */ andi $a0, $t4, 0xffff
-/* 00E63C 8000DA3C 87A600CA */ lh $a2, 0xca($sp)
-/* 00E640 8000DA40 0C002EF6 */ jal func_8000BBD8
-/* 00E644 8000DA44 8FA500C4 */ lw $a1, 0xc4($sp)
-/* 00E648 8000DA48 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
-/* 00E64C 8000DA4C 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
-/* 00E650 8000DA50 C46A0000 */ lwc1 $f10, ($v1)
-/* 00E654 8000DA54 C4640008 */ lwc1 $f4, 8($v1)
-/* 00E658 8000DA58 97A400A6 */ lhu $a0, 0xa6($sp)
-/* 00E65C 8000DA5C 8FA500C4 */ lw $a1, 0xc4($sp)
-/* 00E660 8000DA60 87A600CA */ lh $a2, 0xca($sp)
-/* 00E664 8000DA64 E7AA00A0 */ swc1 $f10, 0xa0($sp)
-/* 00E668 8000DA68 0C002EF6 */ jal func_8000BBD8
-/* 00E66C 8000DA6C E7A40098 */ swc1 $f4, 0x98($sp)
-/* 00E670 8000DA70 87AF00CA */ lh $t7, 0xca($sp)
-/* 00E674 8000DA74 3C028016 */ lui $v0, %hi(D_80164550) # 0x8016
-/* 00E678 8000DA78 87AE00A6 */ lh $t6, 0xa6($sp)
-/* 00E67C 8000DA7C 000FC080 */ sll $t8, $t7, 2
-/* 00E680 8000DA80 00581021 */ addu $v0, $v0, $t8
-/* 00E684 8000DA84 8C424550 */ lw $v0, %lo(D_80164550)($v0) # 0x4550($v0)
-/* 00E688 8000DA88 87AB00A8 */ lh $t3, 0xa8($sp)
-/* 00E68C 8000DA8C 000EC8C0 */ sll $t9, $t6, 3
-/* 00E690 8000DA90 00594821 */ addu $t1, $v0, $t9
-/* 00E694 8000DA94 000B60C0 */ sll $t4, $t3, 3
-/* 00E698 8000DA98 004C6821 */ addu $t5, $v0, $t4
-/* 00E69C 8000DA9C 85AF0002 */ lh $t7, 2($t5)
-/* 00E6A0 8000DAA0 852A0002 */ lh $t2, 2($t1)
-/* 00E6A4 8000DAA4 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
-/* 00E6A8 8000DAA8 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
-/* 00E6AC 8000DAAC 014FC021 */ addu $t8, $t2, $t7
-/* 00E6B0 8000DAB0 44983000 */ mtc1 $t8, $f6
-/* 00E6B4 8000DAB4 3C013F00 */ li $at, 0x3F000000 # 0.500000
-/* 00E6B8 8000DAB8 C4600000 */ lwc1 $f0, ($v1)
-/* 00E6BC 8000DABC 46803220 */ cvt.s.w $f8, $f6
-/* 00E6C0 8000DAC0 44815000 */ mtc1 $at, $f10
-/* 00E6C4 8000DAC4 C7A400A0 */ lwc1 $f4, 0xa0($sp)
-/* 00E6C8 8000DAC8 C4620008 */ lwc1 $f2, 8($v1)
-/* 00E6CC 8000DACC 46002180 */ add.s $f6, $f4, $f0
-/* 00E6D0 8000DAD0 460A4382 */ mul.s $f14, $f8, $f10
-/* 00E6D4 8000DAD4 44814000 */ mtc1 $at, $f8
-/* 00E6D8 8000DAD8 C7A40098 */ lwc1 $f4, 0x98($sp)
-/* 00E6DC 8000DADC 46083282 */ mul.s $f10, $f6, $f8
-/* 00E6E0 8000DAE0 46022180 */ add.s $f6, $f4, $f2
-/* 00E6E4 8000DAE4 44814000 */ mtc1 $at, $f8
-/* 00E6E8 8000DAE8 46167481 */ sub.s $f18, $f14, $f22
-/* 00E6EC 8000DAEC 46145401 */ sub.s $f16, $f10, $f20
-/* 00E6F0 8000DAF0 46083282 */ mul.s $f10, $f6, $f8
-/* 00E6F4 8000DAF4 E7B2004C */ swc1 $f18, 0x4c($sp)
-/* 00E6F8 8000DAF8 E7B00050 */ swc1 $f16, 0x50($sp)
-/* 00E6FC 8000DAFC 46185101 */ sub.s $f4, $f10, $f24
-/* 00E700 8000DB00 46042182 */ mul.s $f6, $f4, $f4
-/* 00E704 8000DB04 E7A40048 */ swc1 $f4, 0x48($sp)
-/* 00E708 8000DB08 46108202 */ mul.s $f8, $f16, $f16
-/* 00E70C 8000DB0C 00000000 */ nop
-/* 00E710 8000DB10 46129282 */ mul.s $f10, $f18, $f18
-/* 00E714 8000DB14 460A4100 */ add.s $f4, $f8, $f10
-/* 00E718 8000DB18 0C033850 */ jal sqrtf
-/* 00E71C 8000DB1C 46062300 */ add.s $f12, $f4, $f6
-/* 00E720 8000DB20 3C01800F */ lui $at, %hi(D_800ED000) # $at, 0x800f
-/* 00E724 8000DB24 C428D000 */ lwc1 $f8, %lo(D_800ED000)($at)
-/* 00E728 8000DB28 C7B00050 */ lwc1 $f16, 0x50($sp)
-/* 00E72C 8000DB2C C7B2004C */ lwc1 $f18, 0x4c($sp)
-/* 00E730 8000DB30 4600403C */ c.lt.s $f8, $f0
-/* 00E734 8000DB34 C7AA00C0 */ lwc1 $f10, 0xc0($sp)
-/* 00E738 8000DB38 27A40054 */ addiu $a0, $sp, 0x54
-/* 00E73C 8000DB3C 02002825 */ move $a1, $s0
-/* 00E740 8000DB40 4502000D */ bc1fl .L8000DB78
-/* 00E744 8000DB44 4600A086 */ mov.s $f2, $f20
-/* 00E748 8000DB48 460A8102 */ mul.s $f4, $f16, $f10
-/* 00E74C 8000DB4C 46002183 */ div.s $f6, $f4, $f0
-/* 00E750 8000DB50 460A9202 */ mul.s $f8, $f18, $f10
-/* 00E754 8000DB54 46004103 */ div.s $f4, $f8, $f0
-/* 00E758 8000DB58 46143080 */ add.s $f2, $f6, $f20
-/* 00E75C 8000DB5C C7A60048 */ lwc1 $f6, 0x48($sp)
-/* 00E760 8000DB60 460A3202 */ mul.s $f8, $f6, $f10
-/* 00E764 8000DB64 46162300 */ add.s $f12, $f4, $f22
-/* 00E768 8000DB68 46004103 */ div.s $f4, $f8, $f0
-/* 00E76C 8000DB6C 10000004 */ b .L8000DB80
-/* 00E770 8000DB70 46182380 */ add.s $f14, $f4, $f24
-/* 00E774 8000DB74 4600A086 */ mov.s $f2, $f20
-.L8000DB78:
-/* 00E778 8000DB78 4600B306 */ mov.s $f12, $f22
-/* 00E77C 8000DB7C 4600C386 */ mov.s $f14, $f24
-.L8000DB80:
-/* 00E780 8000DB80 E6020000 */ swc1 $f2, ($s0)
-/* 00E784 8000DB84 E60C0004 */ swc1 $f12, 4($s0)
-/* 00E788 8000DB88 0C0017F4 */ jal func_80005FD0
-/* 00E78C 8000DB8C E60E0008 */ swc1 $f14, 8($s0)
-/* 00E790 8000DB90 8FBF003C */ lw $ra, 0x3c($sp)
-/* 00E794 8000DB94 D7B40020 */ ldc1 $f20, 0x20($sp)
-/* 00E798 8000DB98 D7B60028 */ ldc1 $f22, 0x28($sp)
-/* 00E79C 8000DB9C D7B80030 */ ldc1 $f24, 0x30($sp)
-/* 00E7A0 8000DBA0 8FB00038 */ lw $s0, 0x38($sp)
-/* 00E7A4 8000DBA4 03E00008 */ jr $ra
-/* 00E7A8 8000DBA8 27BD00B8 */ addiu $sp, $sp, 0xb8
diff --git a/asm/non_matchings/code_80005FD0/func_8000DBAC.s b/asm/non_matchings/code_80005FD0/func_8000DBAC.s
deleted file mode 100644
index 9db3d2ebb..000000000
--- a/asm/non_matchings/code_80005FD0/func_8000DBAC.s
+++ /dev/null
@@ -1,129 +0,0 @@
-.section .late_rodata
-
-glabel D_800ED004
-.float 0.01
-
-.section .text
-
-glabel func_8000DBAC
-/* 00E7AC 8000DBAC 27BDFF60 */ addiu $sp, $sp, -0xa0
-/* 00E7B0 8000DBB0 AFBF0024 */ sw $ra, 0x24($sp)
-/* 00E7B4 8000DBB4 AFB00020 */ sw $s0, 0x20($sp)
-/* 00E7B8 8000DBB8 F7B40018 */ sdc1 $f20, 0x18($sp)
-/* 00E7BC 8000DBBC AFA500A4 */ sw $a1, 0xa4($sp)
-/* 00E7C0 8000DBC0 AFA600A8 */ sw $a2, 0xa8($sp)
-/* 00E7C4 8000DBC4 C48C0000 */ lwc1 $f12, ($a0)
-/* 00E7C8 8000DBC8 C48E0004 */ lwc1 $f14, 4($a0)
-/* 00E7CC 8000DBCC C4820008 */ lwc1 $f2, 8($a0)
-/* 00E7D0 8000DBD0 E7AC0038 */ swc1 $f12, 0x38($sp)
-/* 00E7D4 8000DBD4 C4840004 */ lwc1 $f4, 4($a0)
-/* 00E7D8 8000DBD8 44061000 */ mfc1 $a2, $f2
-/* 00E7DC 8000DBDC 00808025 */ move $s0, $a0
-/* 00E7E0 8000DBE0 E7A4003C */ swc1 $f4, 0x3c($sp)
-/* 00E7E4 8000DBE4 C4860008 */ lwc1 $f6, 8($a0)
-/* 00E7E8 8000DBE8 46006506 */ mov.s $f20, $f12
-/* 00E7EC 8000DBEC E7A60040 */ swc1 $f6, 0x40($sp)
-/* 00E7F0 8000DBF0 84A70000 */ lh $a3, ($a1)
-/* 00E7F4 8000DBF4 E7AE0098 */ swc1 $f14, 0x98($sp)
-/* 00E7F8 8000DBF8 0C003440 */ jal func_8000D100
-/* 00E7FC 8000DBFC E7A20094 */ swc1 $f2, 0x94($sp)
-/* 00E800 8000DC00 8FAF00A4 */ lw $t7, 0xa4($sp)
-/* 00E804 8000DC04 C7A20094 */ lwc1 $f2, 0x94($sp)
-/* 00E808 8000DC08 3C038016 */ lui $v1, %hi(D_8016359C) # $v1, 0x8016
-/* 00E80C 8000DC0C A5E20000 */ sh $v0, ($t7)
-/* 00E810 8000DC10 8C63359C */ lw $v1, %lo(D_8016359C)($v1)
-/* 00E814 8000DC14 24580003 */ addiu $t8, $v0, 3
-/* 00E818 8000DC18 244A0004 */ addiu $t2, $v0, 4
-/* 00E81C 8000DC1C 0303001A */ div $zero, $t8, $v1
-/* 00E820 8000DC20 00003810 */ mfhi $a3
-/* 00E824 8000DC24 3C058016 */ lui $a1, %hi(D_80163598) # $a1, 0x8016
-/* 00E828 8000DC28 8CA53598 */ lw $a1, %lo(D_80163598)($a1)
-/* 00E82C 8000DC2C 0143001A */ div $zero, $t2, $v1
-/* 00E830 8000DC30 0007CC00 */ sll $t9, $a3, 0x10
-/* 00E834 8000DC34 00004010 */ mfhi $t0
-/* 00E838 8000DC38 00194C03 */ sra $t1, $t9, 0x10
-/* 00E83C 8000DC3C 00085C00 */ sll $t3, $t0, 0x10
-/* 00E840 8000DC40 01203825 */ move $a3, $t1
-/* 00E844 8000DC44 000B6403 */ sra $t4, $t3, 0x10
-/* 00E848 8000DC48 00076880 */ sll $t5, $a3, 2
-/* 00E84C 8000DC4C 000C7080 */ sll $t6, $t4, 2
-/* 00E850 8000DC50 14600002 */ bnez $v1, .L8000DC5C
-/* 00E854 8000DC54 00000000 */ nop
-/* 00E858 8000DC58 0007000D */ break 7
-.L8000DC5C:
-/* 00E85C 8000DC5C 2401FFFF */ li $at, -1
-/* 00E860 8000DC60 14610004 */ bne $v1, $at, .L8000DC74
-/* 00E864 8000DC64 3C018000 */ lui $at, 0x8000
-/* 00E868 8000DC68 17010002 */ bne $t8, $at, .L8000DC74
-/* 00E86C 8000DC6C 00000000 */ nop
-/* 00E870 8000DC70 0006000D */ break 6
-.L8000DC74:
-/* 00E874 8000DC74 01A52021 */ addu $a0, $t5, $a1
-/* 00E878 8000DC78 01C53021 */ addu $a2, $t6, $a1
-/* 00E87C 8000DC7C 84D80000 */ lh $t8, ($a2)
-/* 00E880 8000DC80 848F0000 */ lh $t7, ($a0)
-/* 00E884 8000DC84 14600002 */ bnez $v1, .L8000DC90
-/* 00E888 8000DC88 00000000 */ nop
-/* 00E88C 8000DC8C 0007000D */ break 7
-.L8000DC90:
-/* 00E890 8000DC90 2401FFFF */ li $at, -1
-/* 00E894 8000DC94 14610004 */ bne $v1, $at, .L8000DCA8
-/* 00E898 8000DC98 3C018000 */ li $at, 0x80000000 # -0.000000
-/* 00E89C 8000DC9C 15410002 */ bne $t2, $at, .L8000DCA8
-/* 00E8A0 8000DCA0 00000000 */ nop
-/* 00E8A4 8000DCA4 0006000D */ break 6
-.L8000DCA8:
-/* 00E8A8 8000DCA8 01F8C821 */ addu $t9, $t7, $t8
-/* 00E8AC 8000DCAC 44994000 */ mtc1 $t9, $f8
-/* 00E8B0 8000DCB0 84CA0002 */ lh $t2, 2($a2)
-/* 00E8B4 8000DCB4 84890002 */ lh $t1, 2($a0)
-/* 00E8B8 8000DCB8 468042A0 */ cvt.s.w $f10, $f8
-/* 00E8BC 8000DCBC 3C013F00 */ li $at, 0x3F000000 # 0.500000
-/* 00E8C0 8000DCC0 012A5821 */ addu $t3, $t1, $t2
-/* 00E8C4 8000DCC4 448B3000 */ mtc1 $t3, $f6
-/* 00E8C8 8000DCC8 44812000 */ mtc1 $at, $f4
-/* 00E8CC 8000DCCC 46803220 */ cvt.s.w $f8, $f6
-/* 00E8D0 8000DCD0 46045002 */ mul.s $f0, $f10, $f4
-/* 00E8D4 8000DCD4 44815000 */ mtc1 $at, $f10
-/* 00E8D8 8000DCD8 00000000 */ nop
-/* 00E8DC 8000DCDC 460A4382 */ mul.s $f14, $f8, $f10
-/* 00E8E0 8000DCE0 46140401 */ sub.s $f16, $f0, $f20
-/* 00E8E4 8000DCE4 46108102 */ mul.s $f4, $f16, $f16
-/* 00E8E8 8000DCE8 46027481 */ sub.s $f18, $f14, $f2
-/* 00E8EC 8000DCEC E7B00034 */ swc1 $f16, 0x34($sp)
-/* 00E8F0 8000DCF0 46129182 */ mul.s $f6, $f18, $f18
-/* 00E8F4 8000DCF4 E7B20030 */ swc1 $f18, 0x30($sp)
-/* 00E8F8 8000DCF8 0C033850 */ jal sqrtf
-/* 00E8FC 8000DCFC 46062300 */ add.s $f12, $f4, $f6
-/* 00E900 8000DD00 3C01800F */ lui $at, %hi(D_800ED004) # $at, 0x800f
-/* 00E904 8000DD04 C428D004 */ lwc1 $f8, %lo(D_800ED004)($at)
-/* 00E908 8000DD08 C7A20094 */ lwc1 $f2, 0x94($sp)
-/* 00E90C 8000DD0C C7B00034 */ lwc1 $f16, 0x34($sp)
-/* 00E910 8000DD10 4600403C */ c.lt.s $f8, $f0
-/* 00E914 8000DD14 C7B20030 */ lwc1 $f18, 0x30($sp)
-/* 00E918 8000DD18 C7AA00A8 */ lwc1 $f10, 0xa8($sp)
-/* 00E91C 8000DD1C 27A40038 */ addiu $a0, $sp, 0x38
-/* 00E920 8000DD20 45000009 */ bc1f .L8000DD48
-/* 00E924 8000DD24 02002825 */ move $a1, $s0
-/* 00E928 8000DD28 460A8102 */ mul.s $f4, $f16, $f10
-/* 00E92C 8000DD2C 00000000 */ nop
-/* 00E930 8000DD30 460A9202 */ mul.s $f8, $f18, $f10
-/* 00E934 8000DD34 46002183 */ div.s $f6, $f4, $f0
-/* 00E938 8000DD38 46004103 */ div.s $f4, $f8, $f0
-/* 00E93C 8000DD3C 46143300 */ add.s $f12, $f6, $f20
-/* 00E940 8000DD40 10000003 */ b .L8000DD50
-/* 00E944 8000DD44 46022380 */ add.s $f14, $f4, $f2
-.L8000DD48:
-/* 00E948 8000DD48 4600A306 */ mov.s $f12, $f20
-/* 00E94C 8000DD4C 46001386 */ mov.s $f14, $f2
-.L8000DD50:
-/* 00E950 8000DD50 E60C0000 */ swc1 $f12, ($s0)
-/* 00E954 8000DD54 C7A60098 */ lwc1 $f6, 0x98($sp)
-/* 00E958 8000DD58 E60E0008 */ swc1 $f14, 8($s0)
-/* 00E95C 8000DD5C 0C0017F4 */ jal func_80005FD0
-/* 00E960 8000DD60 E6060004 */ swc1 $f6, 4($s0)
-/* 00E964 8000DD64 8FBF0024 */ lw $ra, 0x24($sp)
-/* 00E968 8000DD68 D7B40018 */ ldc1 $f20, 0x18($sp)
-/* 00E96C 8000DD6C 8FB00020 */ lw $s0, 0x20($sp)
-/* 00E970 8000DD70 03E00008 */ jr $ra
-/* 00E974 8000DD74 27BD00A0 */ addiu $sp, $sp, 0xa0
diff --git a/asm/non_matchings/code_80005FD0/func_80011D48.s b/asm/non_matchings/code_80005FD0/func_80011D48.s
deleted file mode 100644
index d4d844e02..000000000
--- a/asm/non_matchings/code_80005FD0/func_80011D48.s
+++ /dev/null
@@ -1,76 +0,0 @@
-.section .late_rodata
-
-glabel jpt_800ED0B4
-.word L80011DC4, L80011E20, L80011DF4, L80011DF4
-.word L80011DF4, L80011E20, L80011E20, L80011E20
-.word L80011E20, L80011E20, L80011E20
-
-.section .text
-
-glabel func_80011D48
-/* 012948 80011D48 3C18800E */ lui $t8, %hi(gCurrentCourseId)
-/* 01294C 80011D4C 8718C5A0 */ lh $t8, %lo(gCurrentCourseId)($t8)
-/* 012950 80011D50 00041040 */ sll $v0, $a0, 1
-/* 012954 80011D54 3C0E8016 */ lui $t6, %hi(D_801632D0) # 0x8016
-/* 012958 80011D58 01C27021 */ addu $t6, $t6, $v0
-/* 01295C 80011D5C 3C0A8016 */ lui $t2, %hi(D_80162EB8) # 0x8016
-/* 012960 80011D60 0018C880 */ sll $t9, $t8, 2
-/* 012964 80011D64 95CE32D0 */ lhu $t6, %lo(D_801632D0)($t6) # 0x32d0($t6)
-/* 012968 80011D68 01595021 */ addu $t2, $t2, $t9
-/* 01296C 80011D6C 8D4A2EB8 */ lw $t2, %lo(D_80162EB8)($t2) # 0x2eb8($t2)
-/* 012970 80011D70 3C098016 */ lui $t1, %hi(D_801632B0) # $t1, 0x8016
-/* 012974 80011D74 000E78C0 */ sll $t7, $t6, 3
-/* 012978 80011D78 252932B0 */ addiu $t1, %lo(D_801632B0) # addiu $t1, $t1, 0x32b0
-/* 01297C 80011D7C 01EA5821 */ addu $t3, $t7, $t2
-/* 012980 80011D80 AD2B0000 */ sw $t3, ($t1)
-/* 012984 80011D84 3C038016 */ lui $v1, %hi(gNearestWaypointByPlayerId) # 0x8016
-/* 012988 80011D88 00621821 */ addu $v1, $v1, $v0
-/* 01298C 80011D8C 94634438 */ lhu $v1, %lo(gNearestWaypointByPlayerId)($v1) # 0x4438($v1)
-/* 012990 80011D90 85680002 */ lh $t0, 2($t3)
-/* 012994 80011D94 8D660004 */ lw $a2, 4($t3)
-/* 012998 80011D98 0068082B */ sltu $at, $v1, $t0
-/* 01299C 80011D9C 14200024 */ bnez $at, .L80011E30
-/* 0129A0 80011DA0 24CCFFFF */ addiu $t4, $a2, -1
-/* 0129A4 80011DA4 2D81000B */ sltiu $at, $t4, 0xb
-/* 0129A8 80011DA8 10200021 */ beqz $at, .L80011E30
-/* 0129AC 80011DAC 000C6080 */ sll $t4, $t4, 2
-/* 0129B0 80011DB0 3C01800F */ lui $at, %hi(jpt_800ED0B4)
-/* 0129B4 80011DB4 002C0821 */ addu $at, $at, $t4
-/* 0129B8 80011DB8 8C2CD0B4 */ lw $t4, %lo(jpt_800ED0B4)($at)
-/* 0129BC 80011DBC 01800008 */ jr $t4
-/* 0129C0 80011DC0 00000000 */ nop
-glabel L80011DC4
-/* 0129C4 80011DC4 8CAD00BC */ lw $t5, 0xbc($a1)
-/* 0129C8 80011DC8 2401FFEF */ li $at, -17
-/* 0129CC 80011DCC 24180001 */ li $t8, 1
-/* 0129D0 80011DD0 01A17024 */ and $t6, $t5, $at
-/* 0129D4 80011DD4 3C018016 */ lui $at, %hi(D_801630E8) # 0x8016
-/* 0129D8 80011DD8 ACAE00BC */ sw $t6, 0xbc($a1)
-/* 0129DC 80011DDC 00220821 */ addu $at, $at, $v0
-/* 0129E0 80011DE0 A42030E8 */ sh $zero, %lo(D_801630E8)($at) # 0x30e8($at)
-/* 0129E4 80011DE4 3C018016 */ lui $at, %hi(D_801632E8) # 0x8016
-/* 0129E8 80011DE8 00220821 */ addu $at, $at, $v0
-/* 0129EC 80011DEC 03E00008 */ jr $ra
-/* 0129F0 80011DF0 A43832E8 */ sh $t8, %lo(D_801632E8)($at) # 0x32e8($at)
-
-glabel L80011DF4
-/* 0129F4 80011DF4 3C0F8016 */ lui $t7, %hi(D_801634F8) # $t7, 0x8016
-/* 0129F8 80011DF8 25EF34F8 */ addiu $t7, %lo(D_801634F8) # addiu $t7, $t7, 0x34f8
-/* 0129FC 80011DFC 0004C900 */ sll $t9, $a0, 4
-/* 012A00 80011E00 032F1821 */ addu $v1, $t9, $t7
-/* 012A04 80011E04 C464000C */ lwc1 $f4, 0xc($v1)
-/* 012A08 80011E08 3C018016 */ lui $at, %hi(D_801632E8) # 0x8016
-/* 012A0C 80011E0C 00220821 */ addu $at, $at, $v0
-/* 012A10 80011E10 240A0001 */ li $t2, 1
-/* 012A14 80011E14 E4640004 */ swc1 $f4, 4($v1)
-/* 012A18 80011E18 03E00008 */ jr $ra
-/* 012A1C 80011E1C A42A32E8 */ sh $t2, %lo(D_801632E8)($at) # 0x32e8($at)
-
-glabel L80011E20
-/* 012A20 80011E20 3C018016 */ lui $at, %hi(D_801632E8) # 0x8016
-/* 012A24 80011E24 00220821 */ addu $at, $at, $v0
-/* 012A28 80011E28 240B0001 */ li $t3, 1
-/* 012A2C 80011E2C A42B32E8 */ sh $t3, %lo(D_801632E8)($at) # 0x32e8($at)
-.L80011E30:
-/* 012A30 80011E30 03E00008 */ jr $ra
-/* 012A34 80011E34 00000000 */ nop
diff --git a/asm/non_matchings/code_80005FD0/func_800146B8.s b/asm/non_matchings/code_80005FD0/func_800146B8.s
deleted file mode 100644
index 9d8ab6dac..000000000
--- a/asm/non_matchings/code_80005FD0/func_800146B8.s
+++ /dev/null
@@ -1,88 +0,0 @@
-.section .late_rodata
-
-glabel D_800ED1B0
-.double 1.6666666666666667
-
-.section .text
-
-glabel func_800146B8
-/* 0152B8 800146B8 000478C0 */ sll $t7, $a0, 3
-/* 0152BC 800146BC 01E47823 */ subu $t7, $t7, $a0
-/* 0152C0 800146C0 000F7900 */ sll $t7, $t7, 4
-/* 0152C4 800146C4 01E47823 */ subu $t7, $t7, $a0
-/* 0152C8 800146C8 000F7880 */ sll $t7, $t7, 2
-/* 0152CC 800146CC 01E47823 */ subu $t7, $t7, $a0
-/* 0152D0 800146D0 000F78C0 */ sll $t7, $t7, 3
-/* 0152D4 800146D4 3C01800F */ lui $at, %hi(gPlayers+0x94)
-/* 0152D8 800146D8 002F0821 */ addu $at, $at, $t7
-/* 0152DC 800146DC C4246A24 */ lwc1 $f4, %lo(gPlayers+0x94)($at)
-/* 0152E0 800146E0 3C01800F */ lui $at, %hi(D_800ED1B0)
-/* 0152E4 800146E4 D428D1B0 */ ldc1 $f8, %lo(D_800ED1B0)($at)
-/* 0152E8 800146E8 460021A1 */ cvt.d.s $f6, $f4
-/* 0152EC 800146EC 27BDFFE0 */ addiu $sp, $sp, -0x20
-/* 0152F0 800146F0 4628303C */ c.lt.d $f6, $f8
-/* 0152F4 800146F4 AFB10018 */ sw $s1, 0x18($sp)
-/* 0152F8 800146F8 AFB00014 */ sw $s0, 0x14($sp)
-/* 0152FC 800146FC 3C088016 */ lui $t0, %hi(gWaypointCountByPathIndex) # $t0, 0x8016
-/* 015300 80014700 00C08025 */ move $s0, $a2
-/* 015304 80014704 00A08825 */ move $s1, $a1
-/* 015308 80014708 AFBF001C */ sw $ra, 0x1c($sp)
-/* 01530C 8001470C AFA40020 */ sw $a0, 0x20($sp)
-/* 015310 80014710 950845C8 */ lhu $t0, %lo(gWaypointCountByPathIndex)($t0)
-/* 015314 80014714 4501002D */ bc1t .L800147CC
-/* 015318 80014718 00807025 */ move $t6, $a0
-/* 01531C 8001471C 18A0002B */ blez $a1, .L800147CC
-/* 015320 80014720 00003025 */ move $a2, $zero
-/* 015324 80014724 3C098016 */ lui $t1, %hi(D_80162FCE) # $t1, 0x8016
-/* 015328 80014728 85292FCE */ lh $t1, %lo(D_80162FCE)($t1)
-/* 01532C 8001472C 24040018 */ li $a0, 24
-.L80014730:
-/* 015330 80014730 9605001C */ lhu $a1, 0x1c($s0)
-/* 015334 80014734 00001025 */ move $v0, $zero
-/* 015338 80014738 01201825 */ move $v1, $t1
-/* 01533C 8001473C 00A03825 */ move $a3, $a1
-.L80014740:
-/* 015340 80014740 0068001A */ div $zero, $v1, $t0
-/* 015344 80014744 0000C010 */ mfhi $t8
-/* 015348 80014748 24420003 */ addiu $v0, $v0, 3
-/* 01534C 8001474C 15000002 */ bnez $t0, .L80014758
-/* 015350 80014750 00000000 */ nop
-/* 015354 80014754 0007000D */ break 7
-.L80014758:
-/* 015358 80014758 2401FFFF */ li $at, -1
-/* 01535C 8001475C 15010004 */ bne $t0, $at, .L80014770
-/* 015360 80014760 3C018000 */ lui $at, 0x8000
-/* 015364 80014764 14610002 */ bne $v1, $at, .L80014770
-/* 015368 80014768 00000000 */ nop
-/* 01536C 8001476C 0006000D */ break 6
-.L80014770:
-/* 015370 80014770 14F80011 */ bne $a3, $t8, .L800147B8
-/* 015374 80014774 00000000 */ nop
-/* 015378 80014778 8FB90020 */ lw $t9, 0x20($sp)
-/* 01537C 8001477C 3C058016 */ lui $a1, %hi(D_80163068) # 0x8016
-/* 015380 80014780 00073400 */ sll $a2, $a3, 0x10
-/* 015384 80014784 00195080 */ sll $t2, $t9, 2
-/* 015388 80014788 00AA2821 */ addu $a1, $a1, $t2
-/* 01538C 8001478C 00065C03 */ sra $t3, $a2, 0x10
-/* 015390 80014790 01603025 */ move $a2, $t3
-/* 015394 80014794 8CA53068 */ lw $a1, %lo(D_80163068)($a1) # 0x3068($a1)
-/* 015398 80014798 0C00516A */ jal func_800145A8
-/* 01539C 8001479C 8604002E */ lh $a0, 0x2e($s0)
-/* 0153A0 800147A0 8FAC0020 */ lw $t4, 0x20($sp)
-/* 0153A4 800147A4 3C018016 */ lui $at, %hi(D_801634F8 + 4)
-/* 0153A8 800147A8 000C6900 */ sll $t5, $t4, 4
-/* 0153AC 800147AC 002D0821 */ addu $at, $at, $t5
-/* 0153B0 800147B0 10000006 */ b .L800147CC
-/* 0153B4 800147B4 E42034FC */ swc1 $f0, %lo(D_801634F8 + 4)($at)
-.L800147B8:
-/* 0153B8 800147B8 1444FFE1 */ bne $v0, $a0, .L80014740
-/* 0153BC 800147BC 24630003 */ addiu $v1, $v1, 3
-/* 0153C0 800147C0 24C60001 */ addiu $a2, $a2, 1
-/* 0153C4 800147C4 14D1FFDA */ bne $a2, $s1, .L80014730
-/* 0153C8 800147C8 26100034 */ addiu $s0, $s0, 0x34
-.L800147CC:
-/* 0153CC 800147CC 8FBF001C */ lw $ra, 0x1c($sp)
-/* 0153D0 800147D0 8FB00014 */ lw $s0, 0x14($sp)
-/* 0153D4 800147D4 8FB10018 */ lw $s1, 0x18($sp)
-/* 0153D8 800147D8 03E00008 */ jr $ra
-/* 0153DC 800147DC 27BD0020 */ addiu $sp, $sp, 0x20
diff --git a/asm/non_matchings/code_80005FD0/func_80014DE4.s b/asm/non_matchings/code_80005FD0/func_80014DE4.s
deleted file mode 100644
index cc7942713..000000000
--- a/asm/non_matchings/code_80005FD0/func_80014DE4.s
+++ /dev/null
@@ -1,70 +0,0 @@
-glabel func_80014DE4
-/* 0159E4 80014DE4 00041040 */ sll $v0, $a0, 1
-/* 0159E8 80014DE8 3C0F8016 */ lui $t7, %hi(D_80164670) # 0x8016
-/* 0159EC 80014DEC 01E27821 */ addu $t7, $t7, $v0
-/* 0159F0 80014DF0 85EF4670 */ lh $t7, %lo(D_80164670)($t7) # 0x4670($t7)
-/* 0159F4 80014DF4 3C0E8016 */ lui $t6, %hi(D_80164678) # $t6, 0x8016
-/* 0159F8 80014DF8 3C018016 */ lui $at, %hi(D_801646CC) # $at, 0x8016
-/* 0159FC 80014DFC 25CE4678 */ addiu $t6, %lo(D_80164678) # addiu $t6, $t6, 0x4678
-/* 015A00 80014E00 A42046CC */ sh $zero, %lo(D_801646CC)($at)
-/* 015A04 80014E04 004E1821 */ addu $v1, $v0, $t6
-/* 015A08 80014E08 3C05800E */ lui $a1, %hi(gModeSelection)
-/* 015A0C 80014E0C A46F0000 */ sh $t7, ($v1)
-/* 015A10 80014E10 8CA5C53C */ lw $a1, %lo(gModeSelection)($a1)
-/* 015A14 80014E14 24070001 */ li $a3, 1
-/* 015A18 80014E18 2408FFFF */ li $t0, -1
-/* 015A1C 80014E1C 10E5000B */ beq $a3, $a1, .L80014E4C
-/* 015A20 80014E20 000448C0 */ sll $t1, $a0, 3
-/* 015A24 80014E24 3C188019 */ lui $t8, %hi(gCupCourseSelection) # $t8, 0x8019
-/* 015A28 80014E28 8318EE0B */ lb $t8, %lo(gCupCourseSelection)($t8)
-/* 015A2C 80014E2C 3C19800E */ lui $t9, %hi(gDemoMode)
-/* 015A30 80014E30 13000004 */ beqz $t8, .L80014E44
-/* 015A34 80014E34 00000000 */ nop
-/* 015A38 80014E38 9739C51C */ lhu $t9, %lo(gDemoMode)($t9)
-/* 015A3C 80014E3C 54F90004 */ bnel $a3, $t9, .L80014E50
-/* 015A40 80014E40 84660000 */ lh $a2, ($v1)
-.L80014E44:
-/* 015A44 80014E44 1000000B */ b .L80014E74
-/* 015A48 80014E48 A4600000 */ sh $zero, ($v1)
-.L80014E4C:
-/* 015A4C 80014E4C 84660000 */ lh $a2, ($v1)
-.L80014E50:
-/* 015A50 80014E50 10C00008 */ beqz $a2, .L80014E74
-/* 015A54 80014E54 00000000 */ nop
-/* 015A58 80014E58 10E60006 */ beq $a3, $a2, .L80014E74
-/* 015A5C 80014E5C 24010002 */ li $at, 2
-/* 015A60 80014E60 10C10004 */ beq $a2, $at, .L80014E74
-/* 015A64 80014E64 24010003 */ li $at, 3
-/* 015A68 80014E68 10C10002 */ beq $a2, $at, .L80014E74
-/* 015A6C 80014E6C 00000000 */ nop
-/* 015A70 80014E70 A4600000 */ sh $zero, ($v1)
-.L80014E74:
-/* 015A74 80014E74 3C018016 */ lui $at, %hi(D_80164680) # 0x8016
-/* 015A78 80014E78 00220821 */ addu $at, $at, $v0
-/* 015A7C 80014E7C A4284680 */ sh $t0, %lo(D_80164680)($at) # 0x4680($at)
-/* 015A80 80014E80 3C018016 */ lui $at, %hi(D_80163238) # $at, 0x8016
-/* 015A84 80014E84 AC203238 */ sw $zero, %lo(D_80163238)($at)
-/* 015A88 80014E88 3C018016 */ lui $at, %hi(D_801646C0) # 0x8016
-/* 015A8C 80014E8C 00220821 */ addu $at, $at, $v0
-/* 015A90 80014E90 A42046C0 */ sh $zero, %lo(D_801646C0)($at) # 0x46c0($at)
-/* 015A94 80014E94 3C0A8016 */ lui $t2, %hi(D_801646D0) # $t2, 0x8016
-/* 015A98 80014E98 3C018016 */ lui $at, %hi(D_801646C8) # $at, 0x8016
-/* 015A9C 80014E9C 254A46D0 */ addiu $t2, %lo(D_801646D0) # addiu $t2, $t2, 0x46d0
-/* 015AA0 80014EA0 AC2046C8 */ sw $zero, %lo(D_801646C8)($at)
-/* 015AA4 80014EA4 012A3021 */ addu $a2, $t1, $t2
-/* 015AA8 80014EA8 A4C00000 */ sh $zero, ($a2)
-/* 015AAC 80014EAC A4C00002 */ sh $zero, 2($a2)
-/* 015AB0 80014EB0 14E50006 */ bne $a3, $a1, .L80014ECC
-/* 015AB4 80014EB4 A4C00004 */ sh $zero, 4($a2)
-/* 015AB8 80014EB8 3C0B8019 */ lui $t3, %hi(D_8018EDFC) # $t3, 0x8019
-/* 015ABC 80014EBC 816BEDFC */ lb $t3, %lo(D_8018EDFC)($t3)
-/* 015AC0 80014EC0 15600002 */ bnez $t3, .L80014ECC
-/* 015AC4 80014EC4 00000000 */ nop
-/* 015AC8 80014EC8 A4600000 */ sh $zero, ($v1)
-.L80014ECC:
-/* 015ACC 80014ECC 3C018016 */ lui $at, %hi(gNearestWaypointByCameraId) # $at, 0x8016
-/* 015AD0 80014ED0 A420466A */ sh $zero, %lo(gNearestWaypointByCameraId+0x2)($at)
-/* 015AD4 80014ED4 A420466C */ sh $zero, %lo(gNearestWaypointByCameraId+0x4)($at)
-/* 015AD8 80014ED8 A420466E */ sh $zero, %lo(gNearestWaypointByCameraId+0x6)($at)
-/* 015ADC 80014EDC 03E00008 */ jr $ra
-/* 015AE0 80014EE0 A4204668 */ sh $zero, %lo(gNearestWaypointByCameraId)($at) # 0x4668($at)
diff --git a/asm/non_matchings/code_80005FD0/func_80019DF4.s b/asm/non_matchings/code_80005FD0/func_80019DF4.s
deleted file mode 100644
index 865d02ec3..000000000
--- a/asm/non_matchings/code_80005FD0/func_80019DF4.s
+++ /dev/null
@@ -1,26 +0,0 @@
-glabel func_80019DF4
-/* 01A9F4 80019DF4 3C0E8016 */ lui $t6, %hi(D_80164678) # $t6, 0x8016
-/* 01A9F8 80019DF8 3C018016 */ lui $at, %hi(D_80164670) # $at, 0x8016
-/* 01A9FC 80019DFC 3C0F8016 */ lui $t7, %hi(D_80164678+0x2) # $t7, 0x8016
-/* 01AA00 80019E00 3C188016 */ lui $t8, %hi(D_80164678+0x4) # $t8, 0x8016
-/* 01AA04 80019E04 3C198016 */ lui $t9, %hi(D_80164678+0x6) # $t9, 0x8016
-/* 01AA08 80019E08 8739467E */ lh $t9, %lo(D_80164678+0x6)($t9)
-/* 01AA0C 80019E0C 8718467C */ lh $t8, %lo(D_80164678+0x4)($t8)
-/* 01AA10 80019E10 85EF467A */ lh $t7, %lo(D_80164678+0x2)($t7)
-/* 01AA14 80019E14 85CE4678 */ lh $t6, %lo(D_80164678)($t6)
-/* 01AA18 80019E18 3C028016 */ lui $v0, %hi(gGPCurrentRacePlayerIdByRank) # $v0, 0x8016
-/* 01AA1C 80019E1C 3C08800E */ lui $t0, %hi(camera1)
-/* 01AA20 80019E20 84424360 */ lh $v0, %lo(gGPCurrentRacePlayerIdByRank)($v0)
-/* 01AA24 80019E24 8D08DB40 */ lw $t0, %lo(camera1)($t0)
-/* 01AA28 80019E28 A4394676 */ sh $t9, %lo(D_80164670+0x6)($at)
-/* 01AA2C 80019E2C A4384674 */ sh $t8, %lo(D_80164670+0x4)($at)
-/* 01AA30 80019E30 A42F4672 */ sh $t7, %lo(D_80164670+0x2)($at)
-/* 01AA34 80019E34 A42E4670 */ sh $t6, %lo(D_80164670)($at)
-/* 01AA38 80019E38 3C018016 */ lui $at, %hi(D_80164678) # $at, 0x8016
-/* 01AA3C 80019E3C 24090001 */ li $t1, 1
-/* 01AA40 80019E40 A50200AE */ sh $v0, 0xae($t0)
-/* 01AA44 80019E44 A4294678 */ sh $t1, %lo(D_80164678)($at)
-/* 01AA48 80019E48 3C018016 */ lui $at, %hi(D_801646CC) # 0x8016
-/* 01AA4C 80019E4C 240A0002 */ li $t2, 2
-/* 01AA50 80019E50 03E00008 */ jr $ra
-/* 01AA54 80019E54 A42A46CC */ sh $t2, %lo(D_801646CC)($at) # 0x46cc($at)
diff --git a/include/waypoints.h b/include/waypoints.h
index f5340ccf4..c61e97312 100644
--- a/include/waypoints.h
+++ b/include/waypoints.h
@@ -52,7 +52,7 @@ extern TrackWaypoint *D_801631D4;
// Shadows values from D_80164580
extern s16 *D_801631D8;
// Shadows values from D_80164590
-extern u16 *D_801631DC;
+extern s16 *D_801631DC;
// Shadowd values from gWaypointCountByPathIndex
extern u16 D_80164430;
// Shadows values from D_80164550
diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c
index 738fc62e2..66cb2b9ba 100644
--- a/src/code_80005FD0.c
+++ b/src/code_80005FD0.c
@@ -36,7 +36,7 @@ Collision D_80162E70;
s16 D_80162EB0; // Possibly a float.
s16 D_80162EB2; // possibly [3]
-uintptr_t *D_80162EB8[20];
+UnkCommonTextureStruct0 *D_80162EB8[20];
// more padding?
s32 D_80162F08[2];
@@ -67,7 +67,7 @@ s16 D_80163050[12];
f32 D_80163068[10];
f32 D_80163090[10];
s32 D_801630B8[10];
-s16 D_801630E0;
+u16 D_801630E0;
s16 D_801630E2;
s16 D_801630E8[10];
s16 D_801630FC;
@@ -81,21 +81,19 @@ s32 D_801631CC;
TrackWaypoint *D_801631D0;
TrackWaypoint *D_801631D4;
s16 *D_801631D8;
-u16 *D_801631DC;
+s16 *D_801631DC;
u16 D_801631E0[12];
-s16 D_801631F8[10];
+u16 D_801631F8[10];
f32 D_8016320C;
f32 D_80163210[10];
s32 D_80163238;
-s16 D_80163240[12];
+u16 D_80163240[12];
u16 D_80163258[12];
u16 D_80163270[12];
s32 D_80163288[10];
-// Exact pointer type unknown
-// Maybe PathNoY or TrackWaypoint?
-void *D_801632B0;
-s16 D_801632B8[12];
-s16 D_801632D0[12];
+UnkCommonTextureStruct0 *D_801632B0;
+u16 D_801632B8[12];
+u16 D_801632D0[12];
u16 D_801632E8[12];
s16 D_80163300[12];
u16 D_80163318[12];
@@ -103,7 +101,7 @@ u16 D_80163330[10];
u16 D_80163344[2];
u16 D_80163348[2];
u16 D_8016334C[2];
-s16 D_80163350[12];
+u16 D_80163350[12];
s32 D_80163368[4];
s32 D_80163378;
s32 D_8016337C;
@@ -209,7 +207,7 @@ s32 D_801646BC;
// end padding
s16 D_801646C0[4];
u32 D_801646C8;
-s16 D_801646CC;
+u16 D_801646CC;
UnkStruct_46D0 D_801646D0[4];
// Strings, presented by google translate!
@@ -1061,40 +1059,25 @@ void func_80007FA4(s32 arg0, Player *player, f32 arg2) {
}
}
-#ifdef MIPS_TO_C
-//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-26-2023
-? func_80007D04(f32, s32, Player *, s32, Player *); /* extern */
-s32 func_800088D8(f32, s32, s16, s16, Player *); /* extern */
-extern ? D_80164392;
-extern ? D_8016440A;
-
-void func_80008424(s32 arg0, f32 arg1, Player *player) {
- f32 sp34;
- s32 sp28;
- s32 sp1C;
- f32 temp_f2;
+void func_80008424(s32 playerId, f32 arg1, Player *player) {
+ f32 var_f2;
f32 var_f0;
- f32 var_f12;
- s32 temp_t5;
- s32 temp_v0;
- s32 temp_v0_2;
- s32 temp_v0_4;
+ s32 thing;
s32 var_a1;
- u16 temp_v0_3;
- u32 temp_v1;
-
- temp_v1 = player->effects;
- var_f12 = arg1;
- temp_f2 = player->unk_094;
- if (!(temp_v1 & 0x80) && !(temp_v1 & 0x40) && !(temp_v1 & 0x20000) && (temp_v0 = player->statusEffects, !(temp_v0 & 0x400000)) && !(temp_v0 & 0x01000000) && !(temp_v0 & 2) && !(temp_v0 & 4)) {
- if (gCurrentCourseId == 0x0014) {
- func_80007FA4(arg0, player, temp_f2);
- return;
- }
- temp_t5 = arg0 * 2;
- if ((D_801634D8[arg0] == (s16) 1) && !(temp_v1 & 0x80000200)) {
+
+ var_f2 = player->unk_094;
+ if (!(player->effects & 0x80) &&
+ !(player->effects & 0x40) &&
+ !(player->effects & 0x20000) &&
+ !(player->statusEffects & 0x400000) &&
+ !(player->statusEffects & 0x01000000) &&
+ !(player->statusEffects & 2) &&
+ !(player->statusEffects & 4)) {
+ if (gCurrentCourseId == COURSE_AWARD_CEREMONY) {
+ func_80007FA4(playerId, player, var_f2);
+ } else if ((D_801634D8[playerId] == 1) && !(player->effects & 0x80000200)) {
func_80031F48(player, 10.0f);
- if ((f64) player->currentSpeed == 0.0) {
+ if (player->currentSpeed == 0.0) {
player->velocity[0] = 0.0f;
player->velocity[2] = 0.0f;
}
@@ -1111,101 +1094,76 @@ void func_80008424(s32 arg0, f32 arg1, Player *player) {
var_f0 = 3.75f;
break;
}
- if (temp_f2 < var_f0) {
- player->effects = temp_v1 & 0xFFDFFFFF;
+ if (var_f2 < var_f0) {
+ player->effects &= ~0x00200000;
player_speed(player);
- return;
- }
- if (player->type & 0x800) {
- if (temp_f2 < var_f12) {
- player->effects = temp_v1 & 0xFFDFFFFF;
+ } else if (player->type & 0x800) {
+ if (var_f2 < arg1) {
+ player->effects &= ~0x00200000;
player_speed(player);
- return;
+ } else {
+ player->effects &= ~0x00200000;
+ func_80031F48(player, 1.0f);
}
- player->effects = temp_v1 & 0xFFDFFFFF;
- func_80031F48(player, 1.0f);
- return;
- }
- if ((D_801631E0[arg0] == (u16) 1) && (D_80163330[arg0] != (u16) 1)) {
- temp_v0_2 = arg0 * 4;
- if (func_800088D8(var_f12, arg0, *(&D_80164392 + temp_v0_2), *(&D_8016440A + temp_v0_2), player) == 1) {
+ } else if ((D_801631E0[playerId] == 1) && (D_80163330[playerId] != 1)) {
+ if (func_800088D8(playerId, gLapCountByPlayerId[playerId], D_80164408[playerId]) == 1) {
player->effects |= 0x200000;
player_speed(player);
- return;
+ } else {
+ player->effects &= ~0x00200000;
+ func_80031F48(player, 1.0f);
}
- player->effects &= 0xFFDFFFFF;
- func_80031F48(player, 1.0f);
- return;
- }
- temp_v0_3 = (u16) D_80163350[arg0];
- switch (temp_v0_3) { /* switch 1; irregular */
- case 1: /* switch 1 */
- player->effects = temp_v1 & 0xFFDFFFFF;
- sp34 = temp_f2;
- sp1C = temp_t5;
- sp28 = 1;
- player_speed(player);
- var_a1 = 1;
- var_f12 = arg1;
- break;
- case 3: /* switch 1 */
- player->effects = temp_v1 | 0x200000;
- sp34 = temp_f2;
- sp1C = temp_t5;
- sp28 = 1;
- player_speed(player);
+ } else {
var_a1 = 1;
- var_f12 = arg1;
- break;
- case 2: /* switch 1 */
- if (((temp_f2 / 18.0f) * 216.0f) > 20.0f) {
- var_f12 = 1.6666666f;
- }
- /* fallthrough */
- default: /* switch 1 */
- case 0: /* switch 1 */
- var_a1 = 0;
- break;
- }
- if (var_a1 != 1) {
- if (temp_f2 < var_f12) {
- if ((gDemoMode == (u16) 1) && (gCurrentCourseId != 0x0014)) {
- player_speed(player);
- return;
- }
- temp_v0_4 = arg0 * 4;
- if (D_80163330[arg0] == (u16) 1) {
- func_80007D04(var_f12, arg0, player, temp_t5, player);
- return;
- }
- if (func_800088D8(var_f12, arg0, *(&D_80164392 + temp_v0_4), *(&D_8016440A + temp_v0_4), player) == 1) {
- player->effects |= 0x200000;
- player_speed(player);
- return;
+ switch (D_80163350[playerId]) { /* switch 1; irregular */
+ case 1: /* switch 1 */
+ player->effects &= ~0x00200000;
+ player_speed(player);
+ break;
+ case 3: /* switch 1 */
+ player->effects |= 0x200000;
+ player_speed(player);
+ break;
+ case 2: /* switch 1 */
+ if (((var_f2 / 18.0f) * 216.0f) > 20.0f) {
+ arg1 = 1.6666666f;
}
- player->effects &= 0xFFDFFFFF;
- func_80031F48(player, 1.0f);
- return;
+ var_a1 = 0;
+ break;
+ case 0: /* switch 1 */
+ default: /* switch 1 */
+ var_a1 = 0;
+ break;
}
- player->effects &= 0xFFDFFFFF;
- if (var_f12 > 1.0f) {
- func_80031F48(player, 2.0f);
- return;
+ if (var_a1 != 1) {
+ if (var_f2 < arg1) {
+ if ((gDemoMode == 1) && (gCurrentCourseId != 0x0014)) {
+ player_speed(player);
+ }else if (D_80163330[playerId] == 1) {
+ func_80007D04(playerId, player);
+ } else if (func_800088D8(playerId, gLapCountByPlayerId[playerId], D_80164408[playerId]) == 1) {
+ player->effects |= 0x200000;
+ player_speed(player);
+ } else {
+ player->effects &= ~0x00200000;
+ func_80031F48(player, 1.0f);
+ }
+ } else {
+ player->effects &= ~0x00200000;
+ if (arg1 > 1.0f) {
+ func_80031F48(player, 2.0f);
+ } else {
+ func_80031F48(player, 5.0f);
+ }
+ }
}
- func_80031F48(player, 5.0f);
}
}
}
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80008424.s")
-#endif
#ifdef MIPS_TO_C
-//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-26-2023
-extern ? D_80164376;
-extern s16 D_80164386;
-extern ? D_801643BA;
+//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-26-2023
static ? D_800DCAF4; /* unable to generate initializer */
static ? D_800DCB34; /* unable to generate initializer */
static ? *D_800DCBB4[0x15] = {
@@ -1288,7 +1246,7 @@ s32 func_800088D8(s32 arg0, s16 arg1, s16 arg2) {
temp_a3 = D_800DCBB4[gCurrentCourseId] + (temp_t2 * 2);
if (arg2 == 0) {
if (gDemoMode == (u16) 1) {
- temp_a2 = D_80164450[arg0].unk2 - D_80164450[D_80164386].unk2;
+ temp_a2 = D_80164450[arg0].unk2 - D_80164450[*(D_80164378 + 0xE)].unk2;
var_a1_2 = temp_a2;
if (temp_a2 < 0) {
var_a1_2 = -temp_a2;
@@ -1305,11 +1263,11 @@ s32 func_800088D8(s32 arg0, s16 arg1, s16 arg2) {
}
return 1;
}
- temp_v0 = D_80164450[arg0 + 1];
- var_a1_3 = temp_v0 - D_80164450[D_80163478 + 1];
- temp_t5_2 = gGPCurrentRaceRankByPlayerId[D_80163478];
+ temp_v0 = D_80164450[arg0].unk2;
+ var_a1_3 = temp_v0 - D_80164450[D_80163478].unk2;
+ temp_t5_2 = *(gGPCurrentRaceRankByPlayerId + 2 + (D_80163478 * 4));
if ((((s32) (*gWaypointCountByPathIndex * 2) / 3) < var_a1_3) && (temp_t5_2 >= 6)) {
- var_a1_3 = temp_v0 - D_80164450[gLapCountByPlayerId[temp_t5_2 - 6]].unk2;
+ var_a1_3 = temp_v0 - D_80164450[*(gLapCountByPlayerId - 0x1A + (temp_t5_2 * 2))].unk2;
}
if (var_a1_3 < 0) {
var_a1_3 = -var_a1_3;
@@ -1497,25 +1455,16 @@ f32 func_80009258(UNUSED s32 playerId, f32 arg1, f32 arg2) {
}
#ifdef MIPS_TO_C
-//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-27-2023
-? func_800065D0(s32, Player *, s32 *); /* extern */
-extern s16 D_801630E0;
-extern s16 D_801630E2;
-extern ? D_80163240;
-extern ? D_801642DE;
-extern ? D_801643B0;
-extern s32 D_8016440C;
-
+//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-28-2023
void func_8000929C(s32 playerId, Player *player) {
f32 sp4C;
f32 sp44;
f32 sp38;
s16 sp34;
u16 *sp30; /* compiler-managed */
- s16 *sp2C;
+ u16 *sp2C;
f32 temp_f0;
f32 temp_f12;
- s16 *temp_v1;
s16 temp_a3;
s16 var_t0;
s32 *temp_v0;
@@ -1529,13 +1478,14 @@ void func_8000929C(s32 playerId, Player *player) {
s32 var_a3;
s32 var_v1;
u16 *temp_t0;
+ u16 *temp_v1;
u16 temp_v0_3;
u16 temp_v0_4;
temp_f0 = player->pos[2];
temp_f12 = player->pos[0];
D_801630E2 = 0;
- temp_v1 = (playerId * 2) + &D_80163240;
+ temp_v1 = &D_80163240[playerId];
*temp_v1 = 0;
temp_t0 = &gNearestWaypointByPlayerId[playerId];
sp30 = temp_t0;
@@ -1544,7 +1494,7 @@ void func_8000929C(s32 playerId, Player *player) {
sp4C = temp_f12;
D_80162FCE = func_8000CD24(temp_f12, player->pos[1], temp_f0, (s16) *temp_t0, player, playerId, D_80163448);
temp_a3 = D_80162FCE;
- D_801630E0 = temp_a3;
+ D_801630E0 = (u16) temp_a3;
if (temp_a3 != *temp_t0) {
*temp_t0 = (u16) temp_a3;
D_801630E2 = 1;
@@ -1613,7 +1563,7 @@ block_25:
var_v0->unk-8 = (s32) (temp_t9 - 1);
var_v0->unk-C = (s32) (temp_t7 - 1);
var_v0->unk-10 = (s32) (temp_t5 - 1);
- } while (var_v0 != &D_801643B0);
+ } while (var_v0 != (gLapCountByPlayerId + 0x20));
}
}
*sp2C = 1;
@@ -1621,7 +1571,7 @@ block_25:
sp30 = var_a3;
func_80008F38(playerId);
func_80011AE4(playerId);
- *(&D_801642DE + (playerId * 0x10)) = 0;
+ *(&D_801642D8->unk_06 + (playerId * 0x10)) = 0;
if ((D_8016348C == 0) && !(player->type & 0x800)) {
sp30 = var_a3;
sp34 = var_t0;
@@ -1643,9 +1593,9 @@ block_25:
}
temp_v0_4 = player->type;
if ((temp_v0_4 & 0x4000) && !(temp_v0_4 & 0x1000)) {
- func_800065D0(playerId, player, &D_80163448);
+ func_800065D0(playerId, player);
if ((gModeSelection == 0) && (gPlayerCount == 2) && (playerId == 0)) {
- if (*D_80164408 < D_8016440C) {
+ if (*D_80164408 < *(D_80164408 + 4)) {
D_80163478 = 0;
} else {
D_80163478 = 1;
@@ -1738,7 +1688,7 @@ block_15:
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800098FC.s")
#endif
-void func_800099EC(s32 playerId, s32 unused) {
+void func_800099EC(s32 playerId, Player *unused) {
s32 var_s0;
if (D_801633C8[playerId] >= 0x65) {
@@ -1762,189 +1712,120 @@ void func_800099EC(s32 playerId, s32 unused) {
}
}
-#ifdef MIPS_TO_C
-//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-28-2023
-? func_80008424(s32, f32, Player *); /* extern */
-? func_8000929C(s32, Player *); /* extern */
-? func_8000D438(s32, u16); /* extern */
-extern s16 D_80162FD0;
-extern u16 D_801630E0;
-extern s16 D_801630E2;
-extern f32 D_8016320C;
-extern ? D_80163240;
-extern ? D_80163300;
-extern ? D_801633E0;
-extern s16 D_8016344A;
-extern ? D_801634FC;
-extern ? D_80163504;
-static s16 D_800DCA20[0]; /* unable to generate initializer */
-f32 D_800DCA4C[0x15] = {
- 50.0f,
- 35.0f,
- 35.0f,
- 40.0f,
- 35.0f,
- 50.0f,
- 50.0f,
- 50.0f,
- 50.0f,
- 50.0f,
- 50.0f,
- 50.0f,
- 50.0f,
- 50.0f,
- 50.0f,
- -1.0f,
- -1.0f,
- -1.0f,
- 40.0f,
- -1.0f,
- 40.0f,
-};
+#ifdef NON_MATCHING
+#define FAKEMATCH1 0
+#define FAKEMATCH2 0
+// https://decomp.me/scratch/uJCh3
+// Lots of register allocation differences, but messing around seems to suggest they stem from 2 specific areas
+// MISMATCH1: something about the loading of `playerId` is off
+// MISMATCH2: something about the handling of the math is off. Not sure exactly what though
+// MISMATCH3: there's a small instruction ordering issue concerning `D_8015F6F0`. No idea what to do about it
+// FAKEMATCH1 is the best improvement I've seen yet, MISMATCH2/3 become the only issues.
void func_80009B60(s32 playerId) {
- s16 sp94;
- Player *sp40;
- f32 *sp3C;
- s32 sp38;
- s32 sp34; /* compiler-managed */
- s32 sp30; /* compiler-managed */
- u16 *sp2C;
- f32 *sp28;
- u16 *sp24;
- u16 *sp20;
- f32 *sp1C;
- Player *temp_v1;
- Test *temp_v1_2;
- Test *temp_v1_3;
- Test *temp_v1_6;
- f32 *temp_a2_2;
- f32 *temp_v0_9;
- f32 *temp_v1_5;
- f32 *temp_v1_7;
- f32 *var_t0;
- f32 *var_t0_2;
- f32 *var_v0_2;
- f32 *var_v1_3;
- f32 temp_f0;
- f32 temp_f0_2;
- f32 temp_f0_3;
- f32 temp_f0_4;
- f32 temp_f0_5;
- f32 temp_f2;
- f32 temp_f2_2;
- s16 *temp_v0_2;
- s16 *temp_v1_4;
- s16 temp_v0_10;
- s16 temp_v0_12;
- s16 temp_v0_13;
- s16 temp_v0_14;
- s16 temp_v0_3;
- s16 temp_v0_5;
- s16 temp_v0_6;
- s16 temp_v0_7;
- s16 temp_v1_8;
+ s32 stackPadding00;
+ s32 stackPadding01;
+ s32 stackPadding02;
+ s32 stackPadding03;
+ s32 stackPadding04;
+ s32 stackPadding05;
+ s32 stackPadding06;
+ s32 stackPadding07;
+ s32 stackPadding08;
+ s32 stackPadding09;
+ s32 stackPadding0A;
+ s32 stackPadding0B;
+ s32 stackPadding0C;
+ s32 stackPadding0D;
s16 var_a0_2;
s16 var_a1;
- s16 var_a1_2;
+ s32 stackPadding0E;
+ s32 stackPadding0F;
+ s32 stackPadding10;
+ s32 stackPadding11;
+ s32 stackPadding12;
+ s32 stackPadding13;
+ s32 stackPadding14;
+ s32 stackPadding15;
+ s32 stackPadding16;
+ s32 stackPadding17;
+ s32 stackPadding18;
+ u16 stackPadding19;
+ u16 stackPadding1A;
+ f32 temp_f0;
+ f32 temp_f2;
s16 var_a2;
- s16 var_v0;
s16 var_v1;
- s16 var_v1_2;
- s32 *temp_v0;
- s32 temp_a1_2;
- s32 temp_a2;
- s32 temp_f10;
s32 temp_f6;
- s32 temp_t5;
- s32 temp_t6;
- u16 *temp_a1;
- u16 *temp_a3;
- u16 *temp_t0;
- u16 *temp_t0_2;
- u16 *temp_t6_2;
- u16 *temp_t8;
- u16 temp_a0;
- u16 var_a0;
- u32 temp_v0_11;
- u32 temp_v0_4;
- void *temp_v0_8;
+ Player *player;
+ TrackWaypoint *waypoint;
+ f32 athing = 1.5f;
- temp_v0 = &D_80163100[playerId];
+ player = &gPlayers[playerId];
if ((s32) D_800DCA4C[gCurrentCourseId] >= 0) {
- *temp_v0 += 1;
+ D_80163100[playerId] += 1;
if (playerId == 0) {
- temp_t6 = D_80163378 + 1;
- D_80163378 = temp_t6;
- if (temp_t6 & 1) {
+ D_80163378++;
+ if (D_80163378 & 1) {
D_80163488 += 1;
}
}
- temp_v1 = &gPlayers[playerId];
- temp_a2 = playerId * 2;
- if (!(temp_v1->type & 0x8000)) {
+ if (!(player->type & 0x8000)) {
D_80164450[playerId] = -0x00000014;
gCourseCompletionPercentByPlayerId[playerId] = -1000.0f;
gLapCompletionPercentByPlayerId[playerId] = -1000.0f;
return;
}
- temp_v0_2 = temp_a2 + &D_801633E0;
- *temp_v0_2 = 0;
- if (temp_v1->pos[0] < (f32) D_8015F6EA) {
- *temp_v0_2 = 1;
+ D_801633E0[playerId] = 0;
+ if (player->pos[0] < D_8015F6EA) {
+ D_801633E0[playerId] = 1;
}
- if ((f32) D_8015F6E8 < temp_v1->pos[0]) {
- *temp_v0_2 = 2;
+ if (D_8015F6E8 < player->pos[0]) {
+ D_801633E0[playerId] = 2;
}
- if (temp_v1->pos[2] < (f32) D_8015F6F2) {
- *temp_v0_2 = 3;
+ if (player->pos[2] < D_8015F6F2) {
+ D_801633E0[playerId] = 3;
}
- if ((f32) D_8015F6F0 < temp_v1->pos[2]) {
- *temp_v0_2 = 4;
+ // MISMATCH3
+ if (D_8015F6F0 < player->pos[2]) {
+ D_801633E0[playerId] = 4;
}
- temp_v0_3 = temp_v1->unk_0CA;
- if (!(temp_v0_3 & 2) && !(temp_v0_3 & 8)) {
- temp_a0 = gPathIndexByPlayerId[playerId];
- sp40 = temp_v1;
- sp34 = temp_a2;
- sp38 = playerId * 4;
- D_80163448 = (s32) temp_a0;
- func_80008DC0((s32) temp_a0);
+ if (!(player->unk_0CA & 2) && !(player->unk_0CA & 8)) {
+ D_80163448 = gPathIndexByPlayerId[playerId];
+ func_80008DC0(D_80163448);
switch (gCurrentCourseId) { /* irregular */
case 11:
- func_80012DC0(playerId, sp40);
+ func_80012DC0(playerId, player);
if (playerId == 0) {
func_80013054();
}
break;
case 18:
- func_80013854(sp40);
+ func_80013854(player);
break;
case 10:
- func_800148C4(playerId, sp40);
- func_80014A18(playerId, sp40);
- func_80014B6C(playerId, sp40);
- func_80014CC0(playerId, sp40);
+ func_800148C4(playerId, player);
+ func_80014A18(playerId, player);
+ func_80014B6C(playerId, player);
+ func_80014CC0(playerId, player);
break;
}
- if (sp40->type & 0x800) {
- sp40->effects &= 0xFFBFFFFF;
- sp40->unk_044 &= 0xFFFE;
+ if (player->type & 0x800) {
+ player->effects &= ~0x00400000;
+ player->unk_044 &= ~0x0001;
}
- func_8000929C(playerId, sp40);
- if ((gCurrentCourseId != 0x0014) && ((*(&D_80163240 + sp34) == 1) || (playerId == 0))) {
+ func_8000929C(playerId, player);
+ if ((gCurrentCourseId != 0x0014) && ((D_80163240[playerId] == 1) || (playerId == 0))) {
set_places();
}
- if (sp40->type & 0x1000) {
+ if (player->type & 0x1000) {
if ((D_801630E2 == 1) && (gCurrentCourseId != 0x0014)) {
func_80011E38(playerId);
}
- temp_t5 = playerId & 1;
- sp30 = temp_t5;
- if ((D_80163378 & 1) != temp_t5) {
+ if ((playerId & 1) != (D_80163378 & 1)) {
func_8001AC10(playerId);
}
- func_800099EC(playerId, (s32) sp40);
+ func_800099EC(playerId, player);
D_80162FD0 = 0;
switch (gModeSelection) { /* switch 1; irregular */
case 1: /* switch 1 */
@@ -1954,313 +1835,272 @@ void func_80009B60(s32 playerId) {
case 0: /* switch 1 */
break;
}
- temp_a1 = sp34 + D_801631E0;
- *temp_a1 = 0;
- if ((sp40->effects & 0x1000) && (gCurrentCourseId != 0x0014)) {
- *temp_a1 = 1;
+ D_801631E0[playerId] = 0;
+ if ((player->effects & 0x1000) && (gCurrentCourseId != 0x0014)) {
+ D_801631E0[playerId] = 1;
}
- if (((u16) D_801646CC == 1) || (sp40->type & 0x800) || (gCurrentCourseId == 0x0014)) {
+ if ((D_801646CC == 1) || (player->type & 0x800) || (gCurrentCourseId == 0x0014)) {
if (gCurrentCourseId != 0x000A) {
- *(&D_801634FC + (playerId * 0x10)) = 0.0f;
+ D_801634F8[playerId].unk4 = 0.0f;
}
- *(&D_80163504 + (playerId * 0x10)) = 0.0f;
+ D_801634F8[playerId].unkC = 0.0f;
}
if (D_80163448 > 0) {
- temp_v1_2 = &D_801634F8[playerId];
- temp_v1_2->unk4 = 0.0f;
- temp_v1_2->unkC = 0.0f;
+ D_801634F8[playerId].unk4 = 0.0f;
+ D_801634F8[playerId].unkC = 0.0f;
}
- temp_t6_2 = sp34 + gNearestWaypointByPlayerId;
- sp24 = temp_t6_2;
- temp_a2_2 = sp38 + D_80164510;
- temp_a3 = sp34 + D_801631F8;
- *temp_a2_2 = (f32) D_80164550[D_80163448][*temp_t6_2].posY + 4.3f;
- if ((*temp_a3 == 1) && (*temp_a1 == 0)) {
- sp2C = temp_a1;
- sp28 = temp_a2_2;
- sp20 = temp_a3;
- func_8002E4C4(sp40);
+ // gNearestWaypointByPlayerId[playerId] might need to be saved to a temp
+ D_80164510[playerId] = D_80164550[D_80163448][gNearestWaypointByPlayerId[playerId]].posY + 4.3f;
+ if ((D_801631F8[playerId] == 1) && (D_801631E0[playerId] == 0)) {
+ func_8002E4C4(player);
}
- if (*temp_a1 == 1) {
- sp40->pos[1] = *temp_a2_2;
+ if (D_801631E0[playerId] == 1) {
+ player->pos[1] = D_80164510[playerId];
}
- *temp_a3 = *temp_a1;
- if (gCurrentCourseId != 4) {
- if (gCurrentCourseId != 0x000A) {
- var_a0 = *temp_a1;
- if (gCurrentCourseId != 0x0014) {
-
- } else {
- goto block_63;
- }
- } else {
- sp2C = temp_a1;
- func_8001490C(playerId);
- func_80014A60(playerId);
- func_80014BB4(playerId);
- func_80014D08(playerId);
- var_a0 = *temp_a1;
- }
- } else {
- var_a0 = *temp_a1;
-block_63:
- *(&D_801634FC + (playerId * 0x10)) = 0.0f;
+ D_801631F8[playerId] = D_801631E0[playerId];
+ switch (gCurrentCourseId) {
+ case 4:
+ case 0x0014:
+ D_801634F8[playerId].unk4 = 0.0f;
+ break;
+ default:
+ break;
+ case 10:
+ func_8001490C(playerId);
+ func_80014A60(playerId);
+ func_80014BB4(playerId);
+ func_80014D08(playerId);
+ break;
}
- if (var_a0 == 1) {
- *(D_801630E8 + sp34) = 0;
- sp40->effects &= ~0x10;
- if ((D_80163378 & 1) != sp30) {
- func_8003680C(sp40, 0);
- func_80008424(playerId, *(D_80163210 + sp38), sp40);
+ if (D_801631E0[playerId] == 1) {
+ D_801630E8[playerId] = 0;
+ player->effects &= ~0x10;
+ if ((playerId & 1) != (D_80163378 & 1)) {
+ func_8003680C(player, 0);
+ func_80008424(playerId, D_80163210[playerId], player);
return;
}
- if ((gPlayerCount > 0) && (gPlayerCount < 3) && (*(D_80163330 + sp34) == 1) && ((s32) *(D_8016334C + sp34) < *(gGPCurrentRaceRankByPlayerId + sp38))) {
- var_t0 = sp38 + D_80163210;
- *var_t0 = 8.333333f;
+ if ((gPlayerCount > 0) && (gPlayerCount < 3) && (D_80163330[playerId] == 1) && (D_8016334C[playerId] < gGPCurrentRaceRankByPlayerId[playerId])) {
+ D_80163210[playerId] = 8.333333f;
} else if (D_80162FD0 == (s16) 1U) {
- temp_v1_3 = &D_801634F8[playerId];
- sp30 = temp_v1_3;
- var_t0 = sp38 + D_80163210;
- *var_t0 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D0096B8);
- temp_v1_3->unk4 = -0.5f;
+ D_80163210[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D0096B8[gCurrentCourseId][gCCSelection]);
+ D_801634F8[playerId].unk4 = -0.5f;
} else if (D_801645E0[D_80162FCE] > 0) {
- var_t0 = sp38 + D_80163210;
- *var_t0 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009418);
+ D_80163210[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009418[gCurrentCourseId][gCCSelection]);
} else {
- var_t0 = sp38 + D_80163210;
- *var_t0 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009568);
+ D_80163210[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009568[gCurrentCourseId][gCCSelection]);
}
- sp3C = var_t0;
func_800131DC(playerId);
func_8000D3B8(playerId);
func_8000D438(playerId, D_801630E0);
- temp_v0_4 = sp40->effects;
- temp_f0 = D_80162FA0->unk0 - sp40->pos[0];
- var_t0_2 = var_t0;
- temp_f2 = D_80162FA0->unk8 - sp40->pos[2];
- if (!(temp_v0_4 & 0x80) && !(temp_v0_4 & 0x40) && !(temp_v0_4 & 0x800)) {
+ temp_f0 = D_80162FA0[0] - player->pos[0];
+ temp_f2 = D_80162FA0[2] - player->pos[2];
+ if (!(player->effects & 0x80) && !(player->effects & 0x40) && !(player->effects & 0x800)) {
if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) > 6400.0f) {
if (D_80163448 == 0) {
- sp3C = var_t0_2;
func_8000B140(playerId);
- if (*(D_80162FF8 + sp34) > 0) {
- sp3C = var_t0_2;
- func_8000BBD8(((s32) ((D_801630E0 + 5) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, *(D_80163090 + sp38), D_8016344A);
+ if (D_80162FF8[playerId] > 0) {
+ stackPadding1A = D_801630E0 + 5;
+ stackPadding1A %= D_80164430;
+ func_8000BBD8(stackPadding1A, D_80163090[playerId], D_80163448);
}
}
- sp3C = var_t0_2;
- sp40->unk_02C[1] = -get_angle_between_points(sp40->pos, D_80162FA0);
+ player->unk_02C[1] = -get_angle_between_points(player->pos, D_80162FA0);
} else {
- sp40->unk_02C[1] = D_80164590[D_80163448][(s32) (D_801630E0 + 4) % (s32) D_80164430];
+ player->unk_02C[1] = D_80164590[D_80163448][(D_801630E0 + 4) % D_80164430];
}
}
- sp3C = var_t0_2;
- func_8003680C(sp40, 0);
- func_80008424(playerId, *var_t0_2, sp40);
+ func_8003680C(player, 0);
+ func_80008424(playerId, D_80163210[playerId], player);
return;
}
- temp_t8 = sp34 + D_801630E8;
- sp2C = temp_t8;
- var_v0 = *temp_t8;
- if ((var_v0 == (s16) 1U) || (var_v0 == -1)) {
- sp40->effects |= 0x10;
- var_v0 = (s16) *sp2C;
+ if ((D_801630E8[playerId] == 1) || (D_801630E8[playerId] == -1)) {
+ player->effects |= 0x10;
}
- if (var_v0 != 0) {
- temp_v1_4 = sp34 + &D_80163300;
- *temp_v1_4 = -get_angle_between_points(&sp40->rotX, sp40->pos);
- var_a0_2 = (s16) ((s32) ((s16) D_801631DC[(s32) (D_80162FCE + 2) % (s32) D_80164430] * 0x168) / 65535);
- var_a1 = (s16) ((s32) (*temp_v1_4 * 0x168) / 65535);
+ if (D_801630E8[playerId] != 0) {
+ D_80163300[playerId] = -get_angle_between_points(&player->rotX, player->pos);
+ var_a0_2 = (D_801631DC[(D_80162FCE + 2) % D_80164430] * 0x168) / 65535;
+ var_a1 = (D_80163300[playerId] * 0x168) / 65535;
if (var_a0_2 < -0xB4) {
var_a0_2 += 0x168;
}
- if (var_a0_2 >= 0xB5) {
+ if (var_a0_2 > 0xB4) {
var_a0_2 -= 0x168;
}
if (var_a1 < -0xB4) {
var_a1 += 0x168;
}
- if (var_a1 >= 0xB5) {
+ if (var_a1 > 0xB4) {
var_a1 -= 0x168;
}
- temp_v0_5 = var_a0_2 - var_a1;
- var_v1 = temp_v0_5;
- if (temp_v0_5 < -0xB4) {
- var_v1 = temp_v0_5 + 0x168;
+ var_v1 = var_a0_2 - var_a1;
+ if (var_v1 < -0xB4) {
+ var_v1 += 0x168;
}
- if (var_v1 >= 0xB5) {
+ if (var_v1 > 0xB4) {
var_v1 -= 0x168;
}
- temp_v0_6 = (s16) *sp2C;
- switch (temp_v0_6) { /* switch 2; irregular */
- case -1: /* switch 2 */
- if (var_v1 >= 6) {
- *sp2C = 0;
- sp40->effects &= ~0x10;
+ switch (D_801630E8[playerId]) {
+ case -1:
+ if (var_v1 > 5) {
+ D_801630E8[playerId] = 0;
+ player->effects &= ~0x10;
}
break;
- case 1: /* switch 2 */
+ case 1:
if (var_v1 < -5) {
- *sp2C = 0;
- sp40->effects &= ~0x10;
+ D_801630E8[playerId] = 0;
+ player->effects &= ~0x10;
}
break;
+ default:
+ break;
}
}
- if ((D_80163378 & 1) != sp30) {
- func_8003680C(sp40, *(D_80163050 + sp34));
- func_80008424(playerId, *(D_80163210 + sp38), sp40);
+ // MISMATCH1
+#if FAKEMATCH2 == 1
+ stackPadding00 = (playerId & 1) != (D_80163378 & 1);
+ if (stackPadding00) {
+#else
+ if ((playerId & 1) != (D_80163378 & 1)) {
+#endif
+ func_8003680C(player, D_80163050[playerId]);
+ func_80008424(playerId, D_80163210[playerId], player);
return;
}
- sp1C = sp40->pos;
- temp_v1_5 = sp38 + D_801630B8;
- *temp_v1_5 = func_8000B7E4(playerId, (u16) D_80162FCE);
- sp28 = temp_v1_5;
- func_8000D438(playerId, (u16) D_80162FCE);
+ D_801630B8[playerId] = func_8000B7E4(playerId, D_80162FCE);
+ func_8000D438(playerId, D_80162FCE);
if (gCurrentCourseId != 0x0014) {
- temp_a1_2 = *(D_80164450 + sp38);
- if (temp_a1_2 < 0xB) {
- temp_v1_6 = &D_801634F8[playerId];
- if ((temp_a1_2 > 0) && (gCurrentCourseId == 0x000A)) {
- sp30 = temp_v1_6;
- func_8000BBD8(((s32) ((D_801630E0 + 0x14) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, 0.0f, 0);
- temp_v1_6->unk4 = 0.0f;
+ if (D_80164450[playerId] < 0xB) {
+ stackPadding1A = D_801630E0;
+ if ((D_80164450[playerId] > 0) && (gCurrentCourseId == 0x000A)) {
+ stackPadding1A += 0x14;
+ stackPadding1A %= D_80164430;
+ func_8000BBD8(stackPadding1A, 0.0f, 0);
+ D_801634F8[playerId].unk4 = 0.0f;
} else {
- temp_t0 = sp38 + D_80163068;
- sp20 = temp_t0;
- sp30 = temp_v1_6;
- func_8000BBD8(((s32) ((D_801630E0 + 8) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, *temp_t0, D_8016344A);
- temp_v1_6->unk0 = *temp_t0;
+ stackPadding1A += 8;
+ stackPadding1A %= D_80164430;
+ func_8000BBD8(stackPadding1A, D_80163068[playerId], D_80163448);
+ D_801634F8[playerId].unk0 = D_80163068[playerId];
}
}
- if ((D_80162FD0 == 1) && (*(D_80162FF8 + sp34) == 0)) {
- func_8000BBD8(((s32) ((D_801630E0 + 7) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, -0.7f, D_8016344A);
+ if ((D_80162FD0 == 1) && (D_80162FF8[playerId] == 0)) {
+ stackPadding1A = D_801630E0 + 7;
+ stackPadding1A %= D_80164430;
+ func_8000BBD8(stackPadding1A, -0.7f, D_80163448);
}
if (D_80163448 == 0) {
- sp3C = sp34 + D_80162FF8;
func_8000B140(playerId);
- if (*sp3C > 0) {
- func_8000BBD8(((s32) ((D_801630E0 + 5) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, *(D_80163090 + sp38), D_8016344A);
+ if (D_80162FF8[playerId] > 0) {
+ stackPadding1A = D_801630E0 + 5;
+#if FAKEMATCH1 == 1
+ if (1) { } if (1) { } if (1) { } if (1) { } if (1) { } if (1) { }
+#endif
+ stackPadding1A %= D_80164430;
+ func_8000BBD8(stackPadding1A, D_80163090[playerId], D_80163448);
}
}
}
- temp_t0_2 = sp38 + D_80163068;
if (gCurrentCourseId == 0x0014) {
- temp_v0_7 = *(D_80163410 + sp34);
- switch (temp_v0_7) { /* switch 3; irregular */
+ switch (D_80163410[playerId]) { /* switch 3; irregular */
case 3: /* switch 3 */
- D_80162FA0->unk0 = *(D_80163418 + sp38);
- D_80162FA0->unk8 = (f32) *(D_80163438 + sp38);
+ D_80162FA0[0] = D_80163418[playerId];
+ D_80162FA0[2] = D_80163438[playerId];
break;
case 4: /* switch 3 */
- temp_v0_8 = (((s32) (*sp24 + 0xA) % (s32) *(gWaypointCountByPathIndex + sp34)) * 8) + *(D_80164550 + sp38);
- D_80162FA0->unk0 = (f32) temp_v0_8->unk0;
- D_80162FA0->unk8 = (f32) temp_v0_8->unk4;
+ waypoint = &D_80164550[playerId][(gNearestWaypointByPlayerId[playerId] + 0xA) % gWaypointCountByPathIndex[playerId]];
+ D_80162FA0[0] = waypoint->posX;
+ D_80162FA0[2] = waypoint->posZ;
break;
}
}
- temp_v0_9 = sp38 + D_80163178;
- temp_v1_7 = sp38 + D_801631A0;
- D_80162FA0->unk0 = (D_80162FA0->unk0 + *temp_v0_9) * 0.5f;
- D_80162FA0->unk8 = (f32) ((D_80162FA0->unk8 + *temp_v1_7) * 0.5f);
- *temp_v0_9 = D_80162FA0->unk0;
- sp20 = temp_t0_2;
- *temp_v1_7 = D_80162FA0->unk8;
- temp_f2_2 = 1.5f * 182.0f;
- temp_v1_8 = -get_angle_between_points(sp1C, D_80162FA0) - sp40->unk_02C[1];
- temp_f10 = (s32) temp_f2_2;
- var_a2 = temp_v1_8;
- temp_f6 = (s32) (-1.5f * 182.0f);
- if ((s16) temp_f10 < temp_v1_8) {
- var_a2 = (s16) temp_f10;
+ D_80162FA0[0] = (D_80163178[playerId] + D_80162FA0[0]) * 0.5f;
+ D_80162FA0[2] = (D_801631A0[playerId] + D_80162FA0[2]) * 0.5f;
+ D_80163178[playerId] = D_80162FA0[0];
+ D_801631A0[playerId] = D_80162FA0[2];
+ temp_f2 = athing * 182.0f;
+ temp_f6 = -athing * 182.0f;
+ // MISMATCH2
+ // This fixes part of the register allocation problems, makes fixing others
+ // harder though. Needs more investigation
+ // var_a2 = (-get_angle_between_points(player->pos, D_80162FA0)) - (var_a1 = player->unk_02C[1]);
+ stackPadding19 = -get_angle_between_points(player->pos, D_80162FA0) - player->unk_02C[1];
+ var_a1 = stackPadding19;
+ var_a2 = var_a1;
+ if ((s16) temp_f2 < var_a1) {
+ var_a2 = temp_f2;
}
if (var_a2 < (s16) temp_f6) {
- var_a2 = (s16) temp_f6;
+ var_a2 = temp_f6;
}
- temp_v0_10 = *(D_801631D8 + sp34);
- var_v1_2 = D_800DCA20[gCurrentCourseId];
- switch (temp_v0_10) { /* switch 4; irregular */
+ var_v1 = D_800DCA20[gCurrentCourseId];
+ switch (D_801631D8[playerId]) { /* switch 4; irregular */
case 2: /* switch 4 */
- temp_f0_2 = *temp_t0_2;
- if (temp_f0_2 > 0.5f) {
- var_v1_2 = 0x0014;
+ if (D_80163068[playerId] > (0.5f * 1.0f)) {
+ var_v1 = 0x0014;
}
- if (temp_f0_2 < -0.5f) {
- var_v1_2 = 0x0035;
+ if (D_80163068[playerId] < -0.5f) {
+ var_v1 = 0x0035;
}
break;
case 3: /* switch 4 */
- temp_f0_3 = *temp_t0_2;
- if (temp_f0_3 > 0.5f) {
- var_v1_2 = 0x0035;
+ if (D_80163068[playerId] > 0.5f) {
+ var_v1 = 0x0035;
}
- if (temp_f0_3 < -0.5f) {
- var_v1_2 = 0x0014;
+ if (D_80163068[playerId] < -0.5f) {
+ var_v1 = 0x0014;
}
break;
}
- if ((*(D_801632E8 + sp34) == 2) && ((temp_f0_4 = *temp_t0_2, (temp_f0_4 > 0.9f)) || (temp_f0_4 < -0.9f))) {
- *sp2C = 0;
- sp40->effects &= ~0x10;
+ if ((D_801632E8[playerId] == 2) && ((D_80163068[playerId] > 0.9f) || (D_80163068[playerId] < -0.9f))) {
+ D_801630E8[playerId] = 0;
+ player->effects &= ~0x10;
}
- temp_v0_11 = sp40->effects;
- if (temp_v0_11 & 2) {
- temp_v0_12 = (s16) *sp2C;
- var_a1_2 = -0x0035;
- if (temp_v0_12 != -1) {
- var_a1_2 = 0x0035;
- if (temp_v0_12 != 1) {
- var_v0_2 = sp34 + D_80163050;
- var_a1_2 = (s16) (s32) (((f32) *var_v0_2 + ((f32) (var_a2 * var_v1_2) / temp_f2_2)) / 2.0f);
- } else {
- var_v0_2 = sp34 + D_80163050;
- }
- } else {
- var_v0_2 = sp34 + D_80163050;
+ if (player->effects & 2) {
+ switch (D_801630E8[playerId]) {
+ case 1:
+ var_a1 = 0x0035;
+ break;
+ case -1:
+ var_a1 = -0x0035;
+ break;
+ default:
+ var_a1 = (D_80163050[playerId] + ((var_a2 * var_v1) / temp_f2)) / 2;
+ break;
}
- } else if (temp_v0_11 & 0x1000000C) {
- var_a1_2 = 0;
- var_v0_2 = sp34 + D_80163050;
+ } else if (player->effects & 0x1000000C) {
+ var_a1 = 0;
} else {
- var_v0_2 = sp34 + D_80163050;
- var_a1_2 = (s16) (s32) (((f32) *var_v0_2 + ((f32) (var_a2 * var_v1_2) / temp_f2_2)) / 2.0f);
+ var_a1 = (D_80163050[playerId] + ((var_a2 * var_v1) / temp_f2)) / 2;
}
- sp3C = var_v0_2;
- sp94 = var_a1_2;
- sp20 = temp_t0_2;
- func_8003680C(sp40, var_a1_2);
- *var_v0_2 = var_a1_2;
- if (((bitwise s32) *sp28 == 1) || (temp_v0_13 = (s16) *sp2C, (temp_v0_13 == 1)) || (temp_v0_13 == -1) || (sp40->effects & 0x1000000C)) {
- sp20 = temp_t0_2;
- var_v1_3 = sp38 + D_80163028;
- *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009418);
+ func_8003680C(player, var_a1);
+ D_80163050[playerId] = var_a1;
+ if ((D_801630B8[playerId] == 1) || (D_801630E8[playerId] == 1) || (D_801630E8[playerId] == -1) || (player->effects & 0x1000000C)) {
+ D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009418[gCurrentCourseId][gCCSelection]);
} else {
- sp20 = temp_t0_2;
- var_v1_3 = sp38 + D_80163028;
- *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009568);
+ D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009568[gCurrentCourseId][gCCSelection]);
}
- temp_f0_5 = *temp_t0_2;
- if ((temp_f0_5 > 0.9f) || (temp_f0_5 < -0.9f)) {
- sp34 = var_v1_3;
- *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009808);
+ if ((D_80163068[playerId] > 0.9f) || (D_80163068[playerId] < -0.9f)) {
+ D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009808[gCurrentCourseId][gCCSelection]);
}
if (D_80162FD0 == 1) {
- sp34 = var_v1_3;
- *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D0096B8);
+ D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D0096B8[gCurrentCourseId][gCCSelection]);
}
- temp_v0_14 = (s16) *sp2C;
- if ((temp_v0_14 == 2) || (temp_v0_14 == -2) || (temp_v0_14 == 3)) {
- *var_v1_3 = 3.3333333f;
+ if ((D_801630E8[playerId] == 2) || (D_801630E8[playerId] == -2) || (D_801630E8[playerId] == 3)) {
+ D_80163028[playerId] = 3.3333333f;
}
- D_8016320C = *var_v1_3;
- sp40->effects &= 0xFFDFFFFF;
- *(D_80163210 + sp38) = D_8016320C;
+ D_8016320C = D_80163028[playerId];
+ player->effects &= ~0x00200000;
+ D_80163210[playerId] = D_8016320C;
func_800131DC(playerId);
- func_80008424(playerId, D_8016320C, sp40);
+ func_80008424(playerId, D_8016320C, player);
}
}
}
}
+#undef FAKEMATCH1
+#undef FAKEMATCH2
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80009B60.s")
#endif
@@ -2883,57 +2723,38 @@ block_17:
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000CD24.s")
#endif
-#ifdef MIPS_TO_C
-//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-12-2023
-extern s32 D_80163598;
-extern s32 D_8016359C;
+s16 func_8000D100(f32 xPos, f32 yPos, f32 zPos, s16 arg3) {
+ f32 xdiff;
+ f32 zdiff;
+ f32 minimumDistance;
+ f32 considerSquaredDistance;
+ s16 realIndex;
+ s16 minimumIndex;
+ s16 considerIndex;
+ PathNoY *considerWaypoint;
-s16 func_8000D100(f32 arg0, f32 arg1, f32 arg2, s16 arg3) {
- f32 temp_f14;
- f32 temp_f16;
- f32 temp_f2;
- f32 var_f0;
- s16 temp_a0;
- s16 temp_v0;
- s16 var_a0;
- s16 var_v0;
- s16 var_v1;
- s32 temp_a1;
- s32 temp_hi;
- void *temp_t0;
-
- temp_a0 = arg3 - 2;
- var_f0 = 250000.0f;
- temp_a1 = arg3 + 7;
- var_v1 = -1;
- var_v0 = temp_a0;
- if (temp_a0 < temp_a1) {
- do {
- var_a0 = var_v0;
- if (var_v0 < 0) {
- var_a0 = var_v0 + D_8016359C;
- }
- temp_hi = var_a0 % (s32) D_8016359C;
- temp_t0 = ((s16) temp_hi * 4) + D_80163598;
- temp_v0 = var_v0 + 1;
- temp_f2 = (f32) temp_t0->unk0 - arg0;
- temp_f14 = (f32) temp_t0->unk2 - arg2;
- temp_f16 = (temp_f2 * temp_f2) + (temp_f14 * temp_f14);
- if (temp_f16 < var_f0) {
- var_f0 = temp_f16;
- var_v1 = (s16) temp_hi;
- }
- var_v0 = temp_v0;
- } while (temp_v0 < temp_a1);
+ minimumDistance = 250000.0f;
+ minimumIndex = -1;
+ for (realIndex = arg3 - 2; realIndex < arg3 + 7; realIndex++) {
+ considerIndex = realIndex;
+ if (realIndex < 0) {
+ considerIndex = realIndex + D_8016359C;
+ }
+ considerIndex %= D_8016359C;
+ considerWaypoint = &D_80163598[considerIndex];
+ xdiff = considerWaypoint->x - xPos;
+ zdiff = considerWaypoint->z - zPos;
+ considerSquaredDistance = (xdiff * xdiff) + (zdiff * zdiff);
+ if (considerSquaredDistance < minimumDistance) {
+ minimumDistance = considerSquaredDistance;
+ minimumIndex = considerIndex;
+ }
}
- if (var_v1 == -1) {
- var_v1 = arg3;
+ if (minimumIndex == -1) {
+ minimumIndex = arg3;
}
- return var_v1;
+ return minimumIndex;
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000D100.s")
-#endif
s16 func_8000D24C(f32 posX, f32 posY, f32 posZ, s32 *pathIndex) {
UNUSED s32 pad;
@@ -3052,15 +2873,17 @@ void func_8000D438(s32 arg0, u16 arg1) {
D_80162FA0[2] = (sp44 + stackPadding4) * 0.5f;
}
-#ifdef NON_MATCHING
-// Something about the handling of D_80162FA0 is really off, can't figure out what
s16 func_8000D6D0(Vec3f arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathIndex, s16 arg5) {
- UNUSED s32 pad[4];
- s16 waypoint2;
+ f32 temp1;
+ f32 temp2;
+ f32 midX;
+ s16 stackPadding1;
s16 waypoint1;
- UNUSED s32 pad2[2];
+ s16 waypoint2;
f32 pad3;
+ f32 midY;
f32 pad4;
+ f32 midZ;
f32 distance;
f32 temp_f20;
f32 temp_f22;
@@ -3092,11 +2915,15 @@ s16 func_8000D6D0(Vec3f arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathIn
pad3 = D_80162FA0[0];
pad4 = D_80162FA0[2];
func_8000BBD8(waypoint2, arg3, pathIndex);
- ydiff = ((path[waypoint2].posY + path[waypoint1].posY) * 0.5f) - temp_f22;
- xdiff = ((pad3 + D_80162FA0[0]) * 0.5f) - temp_f20;
- zdiff = ((pad4 + D_80162FA0[2]) * 0.5f) - temp_f24;
+ temp1 = D_80162FA0[0];
+ temp2 = D_80162FA0[2];
+ midY = (path[waypoint1].posY + path[waypoint2].posY) * 0.5f;
+ midX = (pad3 + temp1) * 0.5f;
+ midZ = (pad4 + temp2) * 0.5f;
+ xdiff = midX - temp_f20;
+ ydiff = midY - temp_f22;
+ zdiff = midZ - temp_f24;
distance = sqrtf((xdiff * xdiff) + (ydiff * ydiff) + (zdiff * zdiff));
- if (distance && distance) {}
if (distance > 0.01f) {
var_f2 = ((xdiff * arg2) / distance) + temp_f20;
var_f12 = ((ydiff * arg2) / distance) + temp_f22;
@@ -3111,20 +2938,20 @@ s16 func_8000D6D0(Vec3f arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathIn
arg0[2] = var_f14;
return func_80005FD0(sp50, arg0);
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000D6D0.s")
-#endif
-#ifdef NON_MATCHING
-// Something about ordering of the math regarding x/y/zdiff is off, can't figure out why
s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathIndex) {
- UNUSED s32 pad[4];
- s16 waypoint2;
+ f32 pad;
+ f32 thing1;
+ f32 thing2;
+ s16 stackPadding1;
s16 waypoint1;
+ s16 waypoint2;
+ s16 stackPadding2;
f32 pad2;
+ f32 midX;
f32 pad3;
- f32 pad4;
- s32 pad5;
+ f32 midY;
+ f32 midZ;
f32 distance;
f32 temp_f20;
f32 temp_f22;
@@ -3133,13 +2960,11 @@ s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathInd
f32 var_f12;
f32 var_f14;
s16 temp_v0;
- s32 waypointCount;
f32 xdiff;
f32 ydiff;
f32 zdiff;
+ s32 waypointCount;
Vec3f sp54;
- s32 pad6;
- TrackWaypoint *path;
sp54[0] = arg0[0];
sp54[1] = arg0[1];
@@ -3156,9 +2981,14 @@ s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathInd
pad2 = D_80162FA0[0];
pad3 = D_80162FA0[2];
func_8000BBD8(waypoint2, arg3, pathIndex);
- ydiff = ((D_80164550[pathIndex][waypoint2].posY + D_80164550[pathIndex][waypoint1].posY) * 0.5f) - temp_f22;
- xdiff = ((pad2 + D_80162FA0[0]) * 0.5f) - temp_f20;
- zdiff = ((pad3 + D_80162FA0[2]) * 0.5f) - temp_f24;
+ thing1 = D_80162FA0[0];
+ thing2 = D_80162FA0[2];
+ midY = (D_80164550[pathIndex][waypoint1].posY + D_80164550[pathIndex][waypoint2].posY) * 0.5f;
+ midX = (pad2 + thing1) * 0.5f;
+ midZ = (pad3 + thing2) * 0.5f;
+ xdiff = midX - temp_f20;
+ ydiff = midY - temp_f22;
+ zdiff = midZ - temp_f24;
distance = sqrtf((xdiff * xdiff) + (ydiff * ydiff) + (zdiff * zdiff));
if (distance > 0.01f) {
var_f2 = ((xdiff * arg2) / distance) + temp_f20;
@@ -3174,80 +3004,63 @@ s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathInd
arg0[2] = var_f14;
return func_80005FD0(sp54, arg0);
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000D940.s")
-#endif
-
-#ifdef MIPS_TO_C
-//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de
-s16 func_8000D100(f32, f32, f32, s16); /* extern */
-extern TrackWaypoint *D_80163598;
-
s16 func_8000DBAC(Vec3f pos, s16 *waypointIndex, f32 speed) {
- f32 sp98;
- f32 sp94;
- //f32 sp40;
- //f32 sp3C;
- Vec3f sp38;
- f32 sp34;
- f32 sp30;
- f32 temp_f0;
- f32 temp_f12;
- f32 temp_f14;
- f32 temp_f16;
- f32 temp_f18;
- f32 temp_f2;
+ f32 origXPos;
+ f32 origYPos;
+ f32 origZPos;
+ s32 stackPadding0;
+ s32 stackPadding1;
+ s32 stackPadding2;
+ s32 stackPadding3;
+ s32 stackPadding4;
+ s32 stackPadding5;
+ s32 stackPadding6;
+ s32 stackPadding7;
+ s32 stackPadding8;
+ f32 midX;
+ f32 midZ;
+ f32 x_dist;
+ f32 y_dist;
+ f32 distance;
f32 var_f12;
f32 var_f14;
s16 temp_v0;
- s32 temp_a1;
- s32 temp_v1;
- void *temp_a0;
- void *temp_a2;
-
- temp_f12 = pos[0];
- temp_f14 = pos[1];
- temp_f2 = pos[2];
+ s16 anIndex;
+ s16 anIndex2;
+ PathNoY *temp_a0;
+ PathNoY *temp_a2;
+ Vec3f sp38;
+ origXPos = pos[0];
+ origYPos = pos[1];
+ origZPos = pos[2];
sp38[0] = pos[0];
sp38[1] = pos[1];
sp38[2] = pos[2];
-
- sp98 = temp_f14;
- sp94 = temp_f2;
- temp_v0 = func_8000D100(temp_f12, temp_f14, temp_f2, *waypointIndex);
+ temp_v0 = func_8000D100(origXPos, origYPos, origZPos, *waypointIndex);
*waypointIndex = temp_v0;
-
- temp_a0 = ((s16) ((s32) (temp_v0 + 3) % temp_v1));
- temp_a2 = ((s16) ((s32) (temp_v0 + 4) % temp_v1));
-
- temp_v1 = D_8016359C[temp_a0];
- temp_a1 = D_80163598[temp_a2];
-
- temp_f16 = ((f32) (temp_v1->waypointX + temp_a1->waypointX) * 0.5f) - temp_f12;
- temp_f18 = ((f32) (temp_v1->waypointY + temp_a1->waypointY) * 0.5f) - temp_f2;
-
- sp34 = temp_f16;
- sp30 = temp_f18;
-
- temp_f0 = sqrtf((temp_f16 * temp_f16) + (temp_f18 * temp_f18));
-
- if (temp_f0 > 0.01f) {
- var_f12 = ((temp_f16 * speed) / temp_f0) + temp_f12;
- var_f14 = ((temp_f18 * speed) / temp_f0) + temp_f2;
+ anIndex = (temp_v0 + 3) % D_8016359C;
+ anIndex2 = (temp_v0 + 4) % D_8016359C;
+ temp_a0 = &D_80163598[anIndex];
+ temp_a2 = &D_80163598[anIndex2];
+ midX = (temp_a0->x + temp_a2->x) * 0.5f;
+ midZ = (temp_a0->z + temp_a2->z) * 0.5f;
+ x_dist = midX - origXPos;
+ y_dist = midZ - origZPos;
+ distance = sqrtf((x_dist * x_dist) + (y_dist * y_dist));
+ if (distance > 0.01f) {
+ var_f12 = ((x_dist * speed) / distance) + origXPos;
+ var_f14 = ((y_dist * speed) / distance) + origZPos;
} else {
- var_f12 = temp_f12;
- var_f14 = temp_f2;
+ var_f12 = origXPos;
+ var_f14 = origZPos;
}
pos[0] = var_f12;
- pos[1] = sp98;
+ pos[1] = origYPos;
pos[2] = var_f14;
- return func_80005FD0(&sp38, pos);
+ return func_80005FD0(sp38, pos);
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000DBAC.s")
-#endif
void set_bomb_kart_spawn_positions(void) {
Collision *var_s2;
@@ -4503,31 +4316,27 @@ void func_80011AE4(s32 index) {
}
#ifdef MIPS_TO_C
-//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-17-2023
-extern ? D_80162EB8;
-extern void *D_801632B0;
-extern ? D_801634FC;
-
+//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-27-2023
void func_80011B14(s32 playerId, Player *player) {
u16 sp2E;
s32 sp1C;
Player *temp_v0;
+ UnkCommonTextureStruct0 *temp_t0;
+ UnkCommonTextureStruct0 *temp_t6;
s16 *temp_a3;
s16 temp_t1;
s32 temp_t3;
u16 temp_a2;
- void *temp_t0;
- void *temp_t6;
temp_a3 = &D_801632B8[playerId];
temp_a2 = (u16) *temp_a3;
- temp_t0 = *(&D_80162EB8 + (gCurrentCourseId * 4));
- temp_t6 = (temp_a2 * 8) + temp_t0;
+ temp_t0 = D_80162EB8[gCurrentCourseId];
+ temp_t6 = &temp_t0[temp_a2];
D_801632B0 = temp_t6;
sp2E = gNearestWaypointByPlayerId[playerId];
- temp_t1 = temp_t6->unk0;
+ temp_t1 = temp_t6->waypointId1;
temp_t3 = temp_t6->unk4;
- if ((temp_t1 == -1) && (temp_t6->unk2 == -1)) {
+ if ((temp_t1 == -1) && (temp_t6->waypointId2 == -1)) {
D_801632B0 = temp_t0;
func_80011AB8(playerId);
return;
@@ -4547,13 +4356,13 @@ void func_80011B14(s32 playerId, Player *player) {
D_801630E8[playerId] = 0;
return;
case 3:
- *(&D_801634FC + (playerId * 0x10)) = 0.0f;
+ *(&D_801634F8->unk4 + (playerId * 0x10)) = 0.0f;
return;
case 4:
- *(&D_801634FC + (playerId * 0x10)) = -0.6f;
+ *(&D_801634F8->unk4 + (playerId * 0x10)) = -0.6f;
return;
case 5:
- *(&D_801634FC + (playerId * 0x10)) = 0.6f;
+ *(&D_801634F8->unk4 + (playerId * 0x10)) = 0.6f;
return;
case 6:
D_80163350[playerId] = 0;
@@ -4562,7 +4371,7 @@ void func_80011B14(s32 playerId, Player *player) {
D_80163350[playerId] = 1;
return;
case 8:
- D_80163350[playerId] = (s16) 2U;
+ D_80163350[playerId] = 2;
return;
case 11:
D_80163350[playerId] = 3;
@@ -4585,29 +4394,17 @@ void func_80011B14(s32 playerId, Player *player) {
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80011B14.s")
#endif
-// Need to know more about D_801632B0 and D_80162EB8 and D_801632D0
-#ifdef NON_MATCHING
-//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
-//extern ? D_80162EB8;
-extern s16 D_801630E8[];
-extern void *D_801632B0;
-
void func_80011D48(s32 playerIndex, Player *player) {
- //s32 temp_a2;
- //s32 temp_v0;
- //s32 temp_t3;
- //void *temp_v1;
- u16 test;
- s16 temp;
+ u16 nearestWaypoint;
+ u32 thing;
+ s32 temp_a2;
- // temp_v0 = playerIndex * 2;
- // * 8) ?
- //temp_t3 = D_801632D0[playerIndex] + D_80162EB8[gCurrentCourseId];
- D_801632B0 = D_801632D0[playerIndex] + D_80162EB8[gCurrentCourseId];
- test = gNearestWaypointByPlayerId[playerIndex];
- // temp_a2 = temp_t3;
- if (test >= (*(u16*)D_801632B0)) {
- switch (*(u16*)D_801632B0) {
+ D_801632B0 = &D_80162EB8[gCurrentCourseId][D_801632D0[playerIndex]];
+ nearestWaypoint = gNearestWaypointByPlayerId[playerIndex];
+ temp_a2 = D_801632B0->unk4;
+ thing = D_801632B0->waypointId2;
+ if (nearestWaypoint >= thing) {
+ switch (temp_a2) {
case 1:
player->effects &= ~0x10;
D_801630E8[playerIndex] = 0;
@@ -4616,7 +4413,6 @@ void func_80011D48(s32 playerIndex, Player *player) {
case 3:
case 4:
case 5:
- //temp_v1 = D_801634F8[playerIndex];
D_801634F8[playerIndex].unk4 = D_801634F8[playerIndex].unkC;
D_801632E8[playerIndex] = 1;
break;
@@ -4628,14 +4424,12 @@ void func_80011D48(s32 playerIndex, Player *player) {
case 10:
case 11:
D_801632E8[playerIndex] = 1;
- /* Duplicate return node #6. Try simplifying control flow for better match */
+ break;
+ default:
break;
}
}
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80011D48.s")
-#endif
void func_80011E38(s32 playerIndex) {
Player *player = gPlayerOne + playerIndex;
@@ -5585,10 +5379,6 @@ f32 func_800145A8(s16 arg0, f32 arg1, s16 arg2) {
return arg1;
}
-#ifdef NON_MATCHING
-extern f32 D_801634FC[][4];
-// Something about the handling of `vehicle` is the source of
-// mismatch. Not sure how to fix it.
void func_800146B8(s32 playerId, s32 arg1, VehicleStuff *vehicle) {
s32 var_v1;
s32 var_v0;
@@ -5599,20 +5389,17 @@ void func_800146B8(s32 playerId, s32 arg1, VehicleStuff *vehicle) {
waypointCount = gWaypointCountByPathIndex[0];
if (!(gPlayers[playerId].unk_094 < 1.6666666666666667)) {
- for (var_s2 = 0; var_s2 < arg1; var_s2++) {
- temp_a1 = vehicle[var_s2].waypointIndex;
- for (var_v0 = 0, var_v1 = D_80162FCE; var_v0 < 0x18; var_v0 += 3, var_v1 += 3) {
- if ((var_v1 % waypointCount) == temp_a1) {
- D_801634FC[playerId][0] = func_800145A8(vehicle[var_s2].someType, D_80163068[playerId], temp_a1);
+ for (var_s2 = 0; var_s2 < arg1; var_s2++, vehicle++) {
+ temp_a1 = vehicle->waypointIndex;
+ for (var_v0 = 0; var_v0 < 0x18; var_v0 += 3) {
+ if (((D_80162FCE + var_v0) % waypointCount) == temp_a1) {
+ D_801634F8[playerId].unk4 = func_800145A8(vehicle->someType, D_80163068[playerId], temp_a1);
return;
}
}
}
}
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800146B8.s")
-#endif
void func_800147E0(void) {
f32 a = ((gCCSelection * 90.0) / 216.0f) + 4.583333333333333;
@@ -5729,21 +5516,9 @@ void func_80014D30(s32 cameraId, s32 pathIndex) {
func_802ADDC8(&cameras[cameraId].unk_54, 10.0f, (f32) temp_v0->posX, (f32) temp_v0->posY + 30.0f, (f32) temp_v0->posZ);
}
-#ifdef NEEDS_BSS
-//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-10-2023
-//extern s32 D_80163238;
-//extern ? D_80164680;
-//extern ? D_801646C0;
-extern s32 D_801646C8;
-
-
-
-extern UnkStruct_46D0 D_801646D0[]; // size of 8
-
void func_80014DE4(s32 arg0) {
- UnkStruct_46D0 *temp_v1;
- // s32 temp_v0;
- //temp_v0 = arg0 * 2;
+ s32 cameraId;
+
D_801646CC = 0;
D_80164678[arg0] = D_80164670[arg0];
if ((gModeSelection != 1) && ((gCupCourseSelection == 0) || (gDemoMode == (u16) 1))) {
@@ -5755,21 +5530,17 @@ void func_80014DE4(s32 arg0) {
D_80163238 = 0;
D_801646C0[arg0] = 0;
D_801646C8 = 0;
- temp_v1 = &D_801646D0[arg0];
- temp_v1->unk0 = 0;
- temp_v1->unk2 = 0;
- temp_v1->unk4 = 0;
+ D_801646D0[arg0].unk0 = 0;
+ D_801646D0[arg0].unk2 = 0;
+ D_801646D0[arg0].unk4 = 0;
if ((gModeSelection == 1) && (D_8018EDFC == 0)) {
D_80164678[arg0] = 0;
}
- for (i = 0 ; i < i++) {
- gNearestWaypointByCameraId[i] = 0;
+ for (cameraId = 0 ; cameraId < 4; cameraId++) {
+ gNearestWaypointByCameraId[cameraId] = 0;
}
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014DE4.s")
-#endif
f32 func_80014EE4(f32 arg0, s32 arg1) {
f32 temp_f0;
@@ -7551,21 +7322,15 @@ void func_80019DE4(void) {
D_801646CC = 1;
}
-#ifdef NON_MATCHING
-// It really seems like this should be it,
-// its unclear what about that for-loop is wrong
void func_80019DF4(void) {
s32 i;
- for (i = 0; i < 4; i++) {
- D_80164670[i] = D_80164678[i];
- }
- camera1->playerId = gGPCurrentRacePlayerIdByRank[0];
+ s32 playerId = gGPCurrentRacePlayerIdByRank[0];
+ // Has to be on a single line to match. Because IDO hates you :)
+ for (i = 0; i < 4; i++) { D_80164670[i] = D_80164678[i]; }
+ camera1->playerId = playerId;
D_80164678[0] = 1;
D_801646CC = 2;
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80019DF4.s")
-#endif
void func_80019E58(void) {
D_80164680[0] = 1;
diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h
index 7171ff741..1cd2bb368 100644
--- a/src/code_80005FD0.h
+++ b/src/code_80005FD0.h
@@ -4,6 +4,7 @@
#include "vehicles.h"
#include "camera.h"
#include "waypoints.h"
+#include "common_textures.h"
struct struct_801642D8 {
/* 0x0 */ u16 unk0;
@@ -63,13 +64,17 @@ s16 func_80005FD0(Vec3f, Vec3f);
s32 func_80006018(f32, f32, f32, f32, f32, f32, f32, f32);
void func_80006114(Vec3f, Vec3f, s16);
s32 func_800061DC(Vec3f, f32, s32);
+void func_800065D0(s32, Player*);
void set_places(void);
void func_800070F4(void);
void func_800074D4(void);
s32 func_80007BF8(u16, u16, u16, u16, u16);
+void func_80007D04(s32, Player*);
void func_80007FA4(s32, Player*, f32);
+void func_80008424(s32, f32, Player*);
+s32 func_800088D8(s32, s16, s16);
void func_80008DC0(s32);
s32 func_80008E58(s32, s32);
void func_80008F38(s32);
@@ -77,8 +82,9 @@ void func_80008F38(s32);
void func_80009000(s32);
void func_800090F0(s32, Player*);
f32 func_80009258(s32, f32, f32);
+void func_8000929C(s32, Player*);
void func_800097E0(void);
-void func_800099EC(s32, s32);
+void func_800099EC(s32, Player*);
void func_80009B60(s32);
void func_8000B140(s32);
@@ -98,6 +104,7 @@ void func_8000CBF8(f32, f32, f32, s16*, s32);
s16 func_8000CC88(f32, f32, f32, Player*, s32, s32*);
s16 func_8000CD24(f32, f32, f32, s16, Player*, s32, s32);
+s16 func_8000D100(f32, f32, f32, s16);
s16 func_8000D24C(f32, f32, f32, s32*);
s16 func_8000D2B4(f32, f32, f32, s16, s32);
s16 func_8000D33C(f32, f32, f32, s16, s32);
@@ -139,6 +146,8 @@ s32 func_8001168C(PathNoY*, TrackWaypoint*, s32);
void func_80011A5C(void);
void func_80011AB8(s32);
void func_80011AE4(s32);
+void func_80011B14(s32, Player*);
+void func_80011D48(s32, Player*);
void func_80011E38(s32);
void func_80011EC0(s32, Player*, s32, s32);
@@ -242,6 +251,7 @@ void func_8001C42C(void);
// Suspected to be the "width" of each waypoint. See data_0DD0A0_1.s
extern f32 D_800DCA4C[];
+extern s16 D_800DCA20[];
struct _struct_D_800DD9D0_0x10 {
/* 0x00 */ u16 unk0;
@@ -261,14 +271,13 @@ extern struct _struct_D_800DD9D0_0x10 D_800DD9D0[];
extern Collision D_80162E70;
extern s16 D_80162EB0; // Possibly a float.
extern s16 D_80162EB2; // possibly [3]
-extern uintptr_t *D_80162EB8[];
+extern UnkCommonTextureStruct0 *D_80162EB8[];
extern s16 D_80162F10[];
extern s16 D_80162F50[];
extern Vec3f D_80162FA0;
extern Vec3f D_80162FB0;
extern Vec3f D_80162FC0;
extern s16 D_80162FCC;
-extern s16 D_80162FCE;
extern s16 D_80162FD0;
extern f32 gCourseCompletionPercentByRank[]; // D_80162FD8
extern s16 D_80162FF8[];
@@ -278,7 +287,7 @@ extern s16 D_80163050[];
extern f32 D_80163068[];
extern f32 D_80163090[];
extern s32 D_801630B8[];
-extern s16 D_801630E0;
+extern u16 D_801630E0;
extern s16 D_801630E2;
extern s16 D_801630E8[];
extern s16 D_801630FC;
@@ -292,20 +301,19 @@ extern s32 D_801631CC;
extern TrackWaypoint *D_801631D0;
extern TrackWaypoint *D_801631D4;
extern s16 *D_801631D8;
-extern u16 *D_801631DC;
extern u16 D_801631E0[];
-extern s16 D_801631F8[];
+extern u16 D_801631F8[];
extern f32 D_8016320C;
extern f32 D_80163210[];
extern s32 D_80163238;
-extern s16 D_80163240[];
+extern u16 D_80163240[];
extern u16 D_80163258[];
extern u16 D_80163270[];
extern s32 D_80163288[];
// Exact pointer type unknown
-extern void *D_801632B0;
-extern s16 D_801632B8[];
-extern s16 D_801632D0[];
+extern UnkCommonTextureStruct0 *D_801632B0;
+extern u16 D_801632B8[];
+extern u16 D_801632D0[];
extern u16 D_801632E8[];
extern s16 D_80163300[];
extern u16 D_80163318[];
@@ -313,7 +321,7 @@ extern u16 D_80163330[];
extern u16 D_80163344[];
extern u16 D_80163348[];
extern u16 D_8016334C[];
-extern s16 D_80163350[];
+extern u16 D_80163350[];
extern s32 D_80163368[];
extern s32 D_80163378;
extern s32 D_8016337C;
@@ -392,7 +400,7 @@ extern f32 D_8016469C;
extern f32 D_801646A0;
extern s16 D_801646C0[];
extern u32 D_801646C8;
-extern s16 D_801646CC;
+extern u16 D_801646CC;
extern UnkStruct_46D0 D_801646D0[];
extern f32 D_800DCAA0[];
diff --git a/src/common_textures.h b/src/common_textures.h
index 584effd9c..5115d47a3 100644
--- a/src/common_textures.h
+++ b/src/common_textures.h
@@ -5,10 +5,10 @@
#include <PR/gbi.h>
typedef struct {
- s16 waypointId1;
- s16 waypointId2;
- s32 unk4;
-} UnkCommonTextureStruct0;
+ /* 0x0 */ s16 waypointId1;
+ /* 0x2 */ s16 waypointId2;
+ /* 0x4 */ s32 unk4;
+} UnkCommonTextureStruct0; // size = 0x8
extern s8 gTLUTFinishLineBanner[];
extern s8 D_0D000200[];
@@ -248,9 +248,9 @@ extern UnkCommonTextureStruct0 D_0D0092C8[];
extern UnkCommonTextureStruct0 D_0D009310[];
extern UnkCommonTextureStruct0 D_0D0093C0[];
extern f32 D_0D009418[][4];
-extern f32 D_0D009568[];
-extern f32 D_0D0096B8[];
-extern f32 D_0D009808[];
+extern f32 D_0D009568[][4];
+extern f32 D_0D0096B8[][4];
+extern f32 D_0D009808[][4];
extern s32 unkPad;
extern s8 D_0D009958[];
extern s8 D_0D00A558[];
diff --git a/src/data/common_textures.inc.c b/src/data/common_textures.inc.c
index d74b6fe8d..cc8df5c5d 100644
--- a/src/data/common_textures.inc.c
+++ b/src/data/common_textures.inc.c
@@ -2490,83 +2490,80 @@ f32 D_0D009418[][4] = {
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f},
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f},
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f},
- { 0.0f, 0.0f, 0.0f, 0.0f},
-};
-
-f32 D_0D009568[] = {
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 4.5833334f, 4.5833334f, 4.5833334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 4.1666665f, 5.5833334f, 6.1666665, 6.75f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 0.0f, 0.0f, 0.0f, 0.0f,
-};
-
-f32 D_0D0096B8[] = {
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.3333332f, 3.3333332f, 3.3333332f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 3.3333332f, 3.9166667f, 4.5f, 5.0833334f,
- 0.0f, 0.0f, 0.0f, 0.0f,
-};
-
-f32 D_0D009808[] = {
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 2.9166667f, 3.75f, 3.75f, 3.75f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 3.75f, 5.1666665f, 5.75f, 6.3333334f,
- 0.0f, 0.0f, 0.0f
-};
-
-// todo: file split?
-s32 unkPad = 0;
+ { 0.0f, 0.0f, 0.0f, 0.0f},
+};
+
+f32 D_0D009568[][4] = {
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 4.5833334f, 4.5833334f, 4.5833334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ {4.1666665f, 5.5833334f, 6.1666665f, 6.75f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 0.0f, 0.0f, 0.0f, 0.0f},
+};
+
+f32 D_0D0096B8[][4] = {
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.3333332f, 3.3333332f, 3.3333332f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {3.3333332f, 3.9166667f, 4.5f, 5.0833334f},
+ {0.0f, 0.0f, 0.0f, 0.0f},
+};
+
+f32 D_0D009808[][4] = {
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ {2.9166667f, 3.75f, 3.75f, 3.75f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 3.75f, 5.1666665f, 5.75f, 6.3333334f},
+ { 0.0f, 0.0f, 0.0f, 0.0f},
+};
// Odometer speedometer
s8 D_0D009958[] = {
diff --git a/tools/doxygen_syms.md b/tools/doxygen_syms.md
index 1270ddb66..0b5469cd2 100644
--- a/tools/doxygen_syms.md
+++ b/tools/doxygen_syms.md
@@ -3789,8 +3789,6 @@ Variable Name | Memory Address
[osViModePalLan1](@ref osViModePalLan1) | 0x800EB4B0
[osViModeMpalLan1](@ref osViModeMpalLan1) | 0x800EB500
[osViModeNtscLan1](@ref osViModeNtscLan1) | 0x800EB550
-[D_800ECF9C](@ref D_800ECF9C) | 0x800ECF9C
-[D_800ECFA0](@ref D_800ECFA0) | 0x800ECFA0
[D_800ECFA8](@ref D_800ECFA8) | 0x800ECFA8
[D_800ECFAC](@ref D_800ECFAC) | 0x800ECFAC
[D_800ECFB0](@ref D_800ECFB0) | 0x800ECFB0
@@ -3803,10 +3801,6 @@ Variable Name | Memory Address
[D_800ECFCC](@ref D_800ECFCC) | 0x800ECFCC
[D_800ECFD0](@ref D_800ECFD0) | 0x800ECFD0
[D_800ECFD4](@ref D_800ECFD4) | 0x800ECFD4
-[D_800ECFF8](@ref D_800ECFF8) | 0x800ECFF8
-[D_800ECFFC](@ref D_800ECFFC) | 0x800ECFFC
-[D_800ED000](@ref D_800ED000) | 0x800ED000
-[D_800ED004](@ref D_800ED004) | 0x800ED004
[D_800ED01C](@ref D_800ED01C) | 0x800ED01C
[D_800ED020](@ref D_800ED020) | 0x800ED020
[D_800ED024](@ref D_800ED024) | 0x800ED024
@@ -3817,7 +3811,6 @@ Variable Name | Memory Address
[D_800ED03C](@ref D_800ED03C) | 0x800ED03C
[D_800ED0AC](@ref D_800ED0AC) | 0x800ED0AC
[D_800ED0B0](@ref D_800ED0B0) | 0x800ED0B0
-[D_800ED1B0](@ref D_800ED1B0) | 0x800ED1B0
[D_800ED230](@ref D_800ED230) | 0x800ED230
[D_800ED238](@ref D_800ED238) | 0x800ED238
[D_800ED240](@ref D_800ED240) | 0x800ED240
@@ -4188,13 +4181,12 @@ Variable Name | Memory Address
[D_80162E70](@ref D_80162E70) | 0x80162E70
[D_80162EB0](@ref D_80162EB0) | 0x80162EB0
[D_80162EB2](@ref D_80162EB2) | 0x80162EB2
-[code_80005FD0_pad](@ref code_80005FD0_pad) | 0x80162EB4
[D_80162EB8](@ref D_80162EB8) | 0x80162EB8
+[D_80162F08](@ref D_80162F08) | 0x80162F08
[D_80162F10](@ref D_80162F10) | 0x80162F10
[D_80162F50](@ref D_80162F50) | 0x80162F50
-[D_80162F8C](@ref D_80162F8C) | 0x80162F8C
+[D_80162F90](@ref D_80162F90) | 0x80162F90
[D_80162FA0](@ref D_80162FA0) | 0x80162FA0
-[D_80162FA8](@ref D_80162FA8) | 0x80162FA8
[D_80162FB0](@ref D_80162FB0) | 0x80162FB0
[D_80162FC0](@ref D_80162FC0) | 0x80162FC0
[D_80162FCC](@ref D_80162FCC) | 0x80162FCC
@@ -4239,9 +4231,7 @@ Variable Name | Memory Address
[D_80163300](@ref D_80163300) | 0x80163300
[D_80163318](@ref D_80163318) | 0x80163318
[D_80163330](@ref D_80163330) | 0x80163330
-[D_80163340](@ref D_80163340) | 0x80163340
[D_80163344](@ref D_80163344) | 0x80163344
-[D_80163346](@ref D_80163346) | 0x80163346
[D_80163348](@ref D_80163348) | 0x80163348
[D_8016334C](@ref D_8016334C) | 0x8016334C
[D_80163350](@ref D_80163350) | 0x80163350
@@ -4259,7 +4249,6 @@ Variable Name | Memory Address
[D_80163428](@ref D_80163428) | 0x80163428
[D_80163438](@ref D_80163438) | 0x80163438
[D_80163448](@ref D_80163448) | 0x80163448
-[D_8016344A](@ref D_8016344A) | 0x8016344A
[D_8016344C](@ref D_8016344C) | 0x8016344C
[D_80163450](@ref D_80163450) | 0x80163450
[D_80163478](@ref D_80163478) | 0x80163478
@@ -4278,64 +4267,32 @@ Variable Name | Memory Address
[D_801634F0](@ref D_801634F0) | 0x801634F0
[D_801634F4](@ref D_801634F4) | 0x801634F4
[D_801634F8](@ref D_801634F8) | 0x801634F8
-[D_801634FC](@ref D_801634FC) | 0x801634FC
-[D_80163504](@ref D_80163504) | 0x80163504
[D_80163598](@ref D_80163598) | 0x80163598
[D_8016359C](@ref D_8016359C) | 0x8016359C
[sTrains](@ref sTrains) | 0x801635A0
[isCrossingTriggeredByIndex](@ref isCrossingTriggeredByIndex) | 0x801637B8
[D_801637BC](@ref D_801637BC) | 0x801637BC
-[D_801637BE](@ref D_801637BE) | 0x801637BE
[gFerries](@ref gFerries) | 0x801637C0
-[D_801637C4](@ref D_801637C4) | 0x801637C4
-[D_801637C8](@ref D_801637C8) | 0x801637C8
-[D_801637E8](@ref D_801637E8) | 0x801637E8
-[D_801637EC](@ref D_801637EC) | 0x801637EC
-[D_801637F0](@ref D_801637F0) | 0x801637F0
-[D_80163814](@ref D_80163814) | 0x80163814
[gBoxTruckList](@ref gBoxTruckList) | 0x80163818
-[D_80163984](@ref D_80163984) | 0x80163984
[gSchoolBusList](@ref gSchoolBusList) | 0x80163988
-[D_80163AF4](@ref D_80163AF4) | 0x80163AF4
[gTankerTruckList](@ref gTankerTruckList) | 0x80163AF8
-[D_80163C64](@ref D_80163C64) | 0x80163C64
[gCarList](@ref gCarList) | 0x80163C68
-[D_80163DD4](@ref D_80163DD4) | 0x80163DD4
[D_80163DD8](@ref D_80163DD8) | 0x80163DD8
-[D_80163DE4](@ref D_80163DE4) | 0x80163DE4
[gBombKarts](@ref gBombKarts) | 0x80163DE8
-[D_80164034](@ref D_80164034) | 0x80164034
[D_80164038](@ref D_80164038) | 0x80164038
-[D_801640F4](@ref D_801640F4) | 0x801640F4
[gUnexpiredActorsList](@ref gUnexpiredActorsList) | 0x801641F8
[D_801642D8](@ref D_801642D8) | 0x801642D8
-[D_801642DE](@ref D_801642DE) | 0x801642DE
[D_80164358](@ref D_80164358) | 0x80164358
[D_8016435A](@ref D_8016435A) | 0x8016435A
[D_8016435C](@ref D_8016435C) | 0x8016435C
[gGPCurrentRacePlayerIdByRank](@ref gGPCurrentRacePlayerIdByRank) | 0x80164360
-[D_80164368](@ref D_80164368) | 0x80164368
-[D_80164370](@ref D_80164370) | 0x80164370
-[D_80164376](@ref D_80164376) | 0x80164376
[D_80164378](@ref D_80164378) | 0x80164378
-[D_80164386](@ref D_80164386) | 0x80164386
[gLapCountByPlayerId](@ref gLapCountByPlayerId) | 0x80164390
-[D_80164392](@ref D_80164392) | 0x80164392
-[D_80164394](@ref D_80164394) | 0x80164394
-[D_80164398](@ref D_80164398) | 0x80164398
-[D_8016439C](@ref D_8016439C) | 0x8016439C
-[D_801643B0](@ref D_801643B0) | 0x801643B0
[gGPCurrentRaceRankByPlayerId](@ref gGPCurrentRaceRankByPlayerId) | 0x801643B8
-[D_801643BA](@ref D_801643BA) | 0x801643BA
-[D_801643D8](@ref D_801643D8) | 0x801643D8
[D_801643E0](@ref D_801643E0) | 0x801643E0
[D_80164408](@ref D_80164408) | 0x80164408
-[D_8016440A](@ref D_8016440A) | 0x8016440A
-[D_8016440C](@ref D_8016440C) | 0x8016440C
[D_80164430](@ref D_80164430) | 0x80164430
[gNearestWaypointByPlayerId](@ref gNearestWaypointByPlayerId) | 0x80164438
-[D_8016443E](@ref D_8016443E) | 0x8016443E
-[D_80164448](@ref D_80164448) | 0x80164448
[D_80164450](@ref D_80164450) | 0x80164450
[D_80164478](@ref D_80164478) | 0x80164478
[D_8016448C](@ref D_8016448C) | 0x8016448C
@@ -4345,10 +4302,8 @@ Variable Name | Memory Address
[gCourseCompletionPercentByPlayerId](@ref gCourseCompletionPercentByPlayerId) | 0x801644D0
[D_801644F8](@ref D_801644F8) | 0x801644F8
[D_80164510](@ref D_80164510) | 0x80164510
-[D_8016452C](@ref D_8016452C) | 0x8016452C
[D_80164538](@ref D_80164538) | 0x80164538
[D_80164550](@ref D_80164550) | 0x80164550
-[D_8016455C](@ref D_8016455C) | 0x8016455C
[D_80164560](@ref D_80164560) | 0x80164560
[D_80164570](@ref D_80164570) | 0x80164570
[D_80164580](@ref D_80164580) | 0x80164580
@@ -4356,7 +4311,6 @@ Variable Name | Memory Address
[D_801645A0](@ref D_801645A0) | 0x801645A0
[gPathIndexByPlayerId](@ref gPathIndexByPlayerId) | 0x801645B0
[gWaypointCountByPathIndex](@ref gWaypointCountByPathIndex) | 0x801645C8
-[D_801645CE](@ref D_801645CE) | 0x801645CE
[D_801645D0](@ref D_801645D0) | 0x801645D0
[D_801645E0](@ref D_801645E0) | 0x801645E0
[D_801645E8](@ref D_801645E8) | 0x801645E8
@@ -4369,19 +4323,19 @@ Variable Name | Memory Address
[D_80164658](@ref D_80164658) | 0x80164658
[gNearestWaypointByCameraId](@ref gNearestWaypointByCameraId) | 0x80164668
[D_80164670](@ref D_80164670) | 0x80164670
-[D_80164672](@ref D_80164672) | 0x80164672
-[D_80164674](@ref D_80164674) | 0x80164674
-[D_80164676](@ref D_80164676) | 0x80164676
[D_80164678](@ref D_80164678) | 0x80164678
-[D_8016467A](@ref D_8016467A) | 0x8016467A
-[D_8016467C](@ref D_8016467C) | 0x8016467C
-[D_8016467E](@ref D_8016467E) | 0x8016467E
[D_80164680](@ref D_80164680) | 0x80164680
-[D_80164682](@ref D_80164682) | 0x80164682
[D_80164688](@ref D_80164688) | 0x80164688
[D_80164698](@ref D_80164698) | 0x80164698
[D_8016469C](@ref D_8016469C) | 0x8016469C
[D_801646A0](@ref D_801646A0) | 0x801646A0
+[D_801646A4](@ref D_801646A4) | 0x801646A4
+[D_801646A8](@ref D_801646A8) | 0x801646A8
+[D_801646AC](@ref D_801646AC) | 0x801646AC
+[D_801646B0](@ref D_801646B0) | 0x801646B0
+[D_801646B4](@ref D_801646B4) | 0x801646B4
+[D_801646B8](@ref D_801646B8) | 0x801646B8
+[D_801646BC](@ref D_801646BC) | 0x801646BC
[D_801646C0](@ref D_801646C0) | 0x801646C0
[D_801646C8](@ref D_801646C8) | 0x801646C8
[D_801646CC](@ref D_801646CC) | 0x801646CC