summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/bss_MainSeg.s4
-rw-r--r--asm/non_matchings/code_80005FD0/func_80011014.s412
-rw-r--r--asm/non_matchings/code_80005FD0/func_8001168C.s266
-rw-r--r--asm/non_matchings/code_80005FD0/func_800133C4.s332
-rw-r--r--asm/non_matchings/code_80005FD0/func_80013F7C.s441
-rw-r--r--asm/non_matchings/code_80005FD0/func_80019DF4.s12
-rw-r--r--include/vehicles.h6
-rw-r--r--src/camera.c10
-rw-r--r--src/code_80005FD0.c1215
-rw-r--r--src/code_80005FD0.h86
10 files changed, 580 insertions, 2204 deletions
diff --git a/asm/bss_MainSeg.s b/asm/bss_MainSeg.s
index 5f0fd36f3..7e5d4a656 100644
--- a/asm/bss_MainSeg.s
+++ b/asm/bss_MainSeg.s
@@ -14,7 +14,7 @@ glabel D_801637BC # CrossingTimer
glabel D_801637BE
.skip 2
-glabel D_801637C0
+glabel gFerries
.skip 4
glabel D_801637C4
@@ -269,7 +269,7 @@ glabel D_80164648
glabel D_80164658
.skip 16
-glabel gNearestWaypointByCameraId
+glabel gNearestWaypointByCameraId # size 4
.skip 8
glabel D_80164670
diff --git a/asm/non_matchings/code_80005FD0/func_80011014.s b/asm/non_matchings/code_80005FD0/func_80011014.s
deleted file mode 100644
index ee4823d44..000000000
--- a/asm/non_matchings/code_80005FD0/func_80011014.s
+++ /dev/null
@@ -1,412 +0,0 @@
-.section .late_rodata
-
-glabel D_800ED068
-.double 0.05
-
-glabel D_800ED070
-.double -500.0
-
-.section .text
-
-glabel func_80011014
-/* 011C14 80011014 27BDFF10 */ addiu $sp, $sp, -0xf0
-/* 011C18 80011018 AFBF0074 */ sw $ra, 0x74($sp)
-/* 011C1C 8001101C AFBE0070 */ sw $fp, 0x70($sp)
-/* 011C20 80011020 AFB7006C */ sw $s7, 0x6c($sp)
-/* 011C24 80011024 AFB60068 */ sw $s6, 0x68($sp)
-/* 011C28 80011028 AFB50064 */ sw $s5, 0x64($sp)
-/* 011C2C 8001102C AFB40060 */ sw $s4, 0x60($sp)
-/* 011C30 80011030 AFB3005C */ sw $s3, 0x5c($sp)
-/* 011C34 80011034 AFB20058 */ sw $s2, 0x58($sp)
-/* 011C38 80011038 AFB10054 */ sw $s1, 0x54($sp)
-/* 011C3C 8001103C AFB00050 */ sw $s0, 0x50($sp)
-/* 011C40 80011040 F7BE0048 */ sdc1 $f30, 0x48($sp)
-/* 011C44 80011044 F7BC0040 */ sdc1 $f28, 0x40($sp)
-/* 011C48 80011048 F7BA0038 */ sdc1 $f26, 0x38($sp)
-/* 011C4C 8001104C F7B80030 */ sdc1 $f24, 0x30($sp)
-/* 011C50 80011050 F7B60028 */ sdc1 $f22, 0x28($sp)
-/* 011C54 80011054 F7B40020 */ sdc1 $f20, 0x20($sp)
-/* 011C58 80011058 AFA600F8 */ sw $a2, 0xf8($sp)
-/* 011C5C 8001105C AFA700FC */ sw $a3, 0xfc($sp)
-/* 011C60 80011060 84AF0004 */ lh $t7, 4($a1)
-/* 011C64 80011064 84AE0000 */ lh $t6, ($a1)
-/* 011C68 80011068 3C12800E */ lui $s2, %hi(gCurrentCourseId)
-/* 011C6C 8001106C 448F3000 */ mtc1 $t7, $f6
-/* 011C70 80011070 448E2000 */ mtc1 $t6, $f4
-/* 011C74 80011074 3C0144FA */ li $at, 0x44FA0000 # 2000.000000
-/* 011C78 80011078 468035A0 */ cvt.s.w $f22, $f6
-/* 011C7C 8001107C 2652C5A0 */ addiu $s2, %lo(gCurrentCourseId) # addiu $s2, $s2, -0x3a60
-/* 011C80 80011080 4480F000 */ mtc1 $zero, $f30
-/* 011C84 80011084 44817000 */ mtc1 $at, $f14
-/* 011C88 80011088 00808825 */ move $s1, $a0
-/* 011C8C 8001108C 46802520 */ cvt.s.w $f20, $f4
-/* 011C90 80011090 4406B000 */ mfc1 $a2, $f22
-/* 011C94 80011094 00008025 */ move $s0, $zero
-/* 011C98 80011098 86470000 */ lh $a3, ($s2)
-/* 011C9C 8001109C AFA500F4 */ sw $a1, 0xf4($sp)
-/* 011CA0 800110A0 AFA00010 */ sw $zero, 0x10($sp)
-/* 011CA4 800110A4 0C0043D0 */ jal func_80010F40
-/* 011CA8 800110A8 4600A306 */ mov.s $f12, $f20
-/* 011CAC 800110AC 8FA500F8 */ lw $a1, 0xf8($sp)
-/* 011CB0 800110B0 46000706 */ mov.s $f28, $f0
-/* 011CB4 800110B4 00009825 */ move $s3, $zero
-/* 011CB8 800110B8 18A0013B */ blez $a1, .L800115A8
-/* 011CBC 800110BC 241E0012 */ li $fp, 18
-/* 011CC0 800110C0 44804000 */ mtc1 $zero, $f8
-/* 011CC4 800110C4 3C158016 */ lui $s5, %hi(D_80162E70) # $s5, 0x8016
-/* 011CC8 800110C8 3C14800E */ lui $s4, %hi(gIsMirrorMode)
-/* 011CCC 800110CC 460042A1 */ cvt.d.s $f10, $f8
-/* 011CD0 800110D0 2694C604 */ addiu $s4, %lo(gIsMirrorMode) # addiu $s4, $s4, -0x39fc
-/* 011CD4 800110D4 F7AA0078 */ sdc1 $f10, 0x78($sp)
-/* 011CD8 800110D8 26B52E70 */ addiu $s5, %lo(D_80162E70) # addiu $s5, $s5, 0x2e70
-/* 011CDC 800110DC E7B400C0 */ swc1 $f20, 0xc0($sp)
-/* 011CE0 800110E0 E7B600B8 */ swc1 $f22, 0xb8($sp)
-/* 011CE4 800110E4 2417000E */ li $s7, 14
-/* 011CE8 800110E8 2416000D */ li $s6, 13
-/* 011CEC 800110EC 8FA500F8 */ lw $a1, 0xf8($sp)
-.L800110F0:
-/* 011CF0 800110F0 26660001 */ addiu $a2, $s3, 1
-/* 011CF4 800110F4 266E0002 */ addiu $t6, $s3, 2
-/* 011CF8 800110F8 0265001A */ div $zero, $s3, $a1
-/* 011CFC 800110FC 0000C010 */ mfhi $t8
-/* 011D00 80011100 8FA700F4 */ lw $a3, 0xf4($sp)
-/* 011D04 80011104 0018C8C0 */ sll $t9, $t8, 3
-/* 011D08 80011108 00C5001A */ div $zero, $a2, $a1
-/* 011D0C 8001110C 00005010 */ mfhi $t2
-/* 011D10 80011110 03271021 */ addu $v0, $t9, $a3
-/* 011D14 80011114 84480000 */ lh $t0, ($v0)
-/* 011D18 80011118 01C5001A */ div $zero, $t6, $a1
-/* 011D1C 8001111C 000A58C0 */ sll $t3, $t2, 3
-/* 011D20 80011120 00007810 */ mfhi $t7
-/* 011D24 80011124 000FC0C0 */ sll $t8, $t7, 3
-/* 011D28 80011128 01671821 */ addu $v1, $t3, $a3
-/* 011D2C 8001112C 84490004 */ lh $t1, 4($v0)
-/* 011D30 80011130 846C0000 */ lh $t4, ($v1)
-/* 011D34 80011134 44882000 */ mtc1 $t0, $f4
-/* 011D38 80011138 03072021 */ addu $a0, $t8, $a3
-/* 011D3C 8001113C 84990000 */ lh $t9, ($a0)
-/* 011D40 80011140 468026A0 */ cvt.s.w $f26, $f4
-/* 011D44 80011144 846D0004 */ lh $t5, 4($v1)
-/* 011D48 80011148 44893000 */ mtc1 $t1, $f6
-/* 011D4C 8001114C 448C4000 */ mtc1 $t4, $f8
-/* 011D50 80011150 44992000 */ mtc1 $t9, $f4
-/* 011D54 80011154 468033A0 */ cvt.s.w $f14, $f6
-/* 011D58 80011158 448D5000 */ mtc1 $t5, $f10
-/* 011D5C 8001115C 14A00002 */ bnez $a1, .L80011168
-/* 011D60 80011160 00000000 */ nop
-/* 011D64 80011164 0007000D */ break 7
-.L80011168:
-/* 011D68 80011168 2401FFFF */ li $at, -1
-/* 011D6C 8001116C 14A10004 */ bne $a1, $at, .L80011180
-/* 011D70 80011170 3C018000 */ lui $at, 0x8000
-/* 011D74 80011174 16610002 */ bne $s3, $at, .L80011180
-/* 011D78 80011178 00000000 */ nop
-/* 011D7C 8001117C 0006000D */ break 6
-.L80011180:
-/* 011D80 80011180 46804520 */ cvt.s.w $f20, $f8
-/* 011D84 80011184 14A00002 */ bnez $a1, .L80011190
-/* 011D88 80011188 00000000 */ nop
-/* 011D8C 8001118C 0007000D */ break 7
-.L80011190:
-/* 011D90 80011190 2401FFFF */ li $at, -1
-/* 011D94 80011194 14A10004 */ bne $a1, $at, .L800111A8
-/* 011D98 80011198 3C018000 */ lui $at, 0x8000
-/* 011D9C 8001119C 14C10002 */ bne $a2, $at, .L800111A8
-/* 011DA0 800111A0 00000000 */ nop
-/* 011DA4 800111A4 0006000D */ break 6
-.L800111A8:
-/* 011DA8 800111A8 468021A0 */ cvt.s.w $f6, $f4
-/* 011DAC 800111AC 468055A0 */ cvt.s.w $f22, $f10
-/* 011DB0 800111B0 E7A600D0 */ swc1 $f6, 0xd0($sp)
-/* 011DB4 800111B4 84880004 */ lh $t0, 4($a0)
-/* 011DB8 800111B8 14A00002 */ bnez $a1, .L800111C4
-/* 011DBC 800111BC 00000000 */ nop
-/* 011DC0 800111C0 0007000D */ break 7
-.L800111C4:
-/* 011DC4 800111C4 2401FFFF */ li $at, -1
-/* 011DC8 800111C8 14A10004 */ bne $a1, $at, .L800111DC
-/* 011DCC 800111CC 3C018000 */ li $at, 0x80000000 # -0.000000
-/* 011DD0 800111D0 15C10002 */ bne $t6, $at, .L800111DC
-/* 011DD4 800111D4 00000000 */ nop
-/* 011DD8 800111D8 0006000D */ break 6
-.L800111DC:
-/* 011DDC 800111DC 461AA001 */ sub.s $f0, $f20, $f26
-/* 011DE0 800111E0 44884000 */ mtc1 $t0, $f8
-/* 011DE4 800111E4 E7AE00DC */ swc1 $f14, 0xdc($sp)
-/* 011DE8 800111E8 460EB081 */ sub.s $f2, $f22, $f14
-/* 011DEC 800111EC 46000102 */ mul.s $f4, $f0, $f0
-/* 011DF0 800111F0 AFA60084 */ sw $a2, 0x84($sp)
-/* 011DF4 800111F4 46021182 */ mul.s $f6, $f2, $f2
-/* 011DF8 800111F8 468042A0 */ cvt.s.w $f10, $f8
-/* 011DFC 800111FC 44804000 */ mtc1 $zero, $f8
-/* 011E00 80011200 00000000 */ nop
-/* 011E04 80011204 E7A800AC */ swc1 $f8, 0xac($sp)
-/* 011E08 80011208 46062300 */ add.s $f12, $f4, $f6
-/* 011E0C 8001120C 0C033850 */ jal sqrtf
-/* 011E10 80011210 E7AA00CC */ swc1 $f10, 0xcc($sp)
-/* 011E14 80011214 C7AA00D0 */ lwc1 $f10, 0xd0($sp)
-/* 011E18 80011218 C7A400CC */ lwc1 $f4, 0xcc($sp)
-/* 011E1C 8001121C 46000606 */ mov.s $f24, $f0
-/* 011E20 80011220 46145081 */ sub.s $f2, $f10, $f20
-/* 011E24 80011224 E7B400D8 */ swc1 $f20, 0xd8($sp)
-/* 011E28 80011228 E7B600D4 */ swc1 $f22, 0xd4($sp)
-/* 011E2C 8001122C 46162381 */ sub.s $f14, $f4, $f22
-/* 011E30 80011230 46021182 */ mul.s $f6, $f2, $f2
-/* 011E34 80011234 E7BA00E0 */ swc1 $f26, 0xe0($sp)
-/* 011E38 80011238 460E7202 */ mul.s $f8, $f14, $f14
-/* 011E3C 8001123C 0C033850 */ jal sqrtf
-/* 011E40 80011240 46083300 */ add.s $f12, $f6, $f8
-/* 011E44 80011244 46180100 */ add.s $f4, $f0, $f24
-/* 011E48 80011248 3C01800F */ lui $at, %hi(D_800ED068)
-/* 011E4C 8001124C D42AD068 */ ldc1 $f10, %lo(D_800ED068)($at)
-/* 011E50 80011250 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
-/* 011E54 80011254 460021A1 */ cvt.d.s $f6, $f4
-/* 011E58 80011258 46265203 */ div.d $f8, $f10, $f6
-/* 011E5C 8001125C D7A60078 */ ldc1 $f6, 0x78($sp)
-/* 011E60 80011260 44805000 */ mtc1 $zero, $f10
-/* 011E64 80011264 44815800 */ mtc1 $at, $f11
-/* 011E68 80011268 00000000 */ nop
-/* 011E6C 8001126C 462A303E */ c.le.d $f6, $f10
-/* 011E70 80011270 46204120 */ cvt.s.d $f4, $f8
-/* 011E74 80011274 450000C8 */ bc1f .L80011598
-/* 011E78 80011278 E7A40094 */ swc1 $f4, 0x94($sp)
-/* 011E7C 8001127C C7A800AC */ lwc1 $f8, 0xac($sp)
-/* 011E80 80011280 46004521 */ cvt.d.s $f20, $f8
-/* 011E84 80011284 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
-.L80011288:
-/* 011E88 80011288 44812800 */ mtc1 $at, $f5
-/* 011E8C 8001128C 44802000 */ mtc1 $zero, $f4
-/* 011E90 80011290 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
-/* 011E94 80011294 44815800 */ mtc1 $at, $f11
-/* 011E98 80011298 46342001 */ sub.d $f0, $f4, $f20
-/* 011E9C 8001129C 44805000 */ mtc1 $zero, $f10
-/* 011EA0 800112A0 00000000 */ nop
-/* 011EA4 800112A4 462A0182 */ mul.d $f6, $f0, $f10
-/* 011EA8 800112A8 44805000 */ mtc1 $zero, $f10
-/* 011EAC 800112AC 44815800 */ mtc1 $at, $f11
-/* 011EB0 800112B0 46203202 */ mul.d $f8, $f6, $f0
-/* 011EB4 800112B4 462040A0 */ cvt.s.d $f2, $f8
-/* 011EB8 800112B8 46340102 */ mul.d $f4, $f0, $f20
-/* 011EBC 800112BC 44804000 */ mtc1 $zero, $f8
-/* 011EC0 800112C0 44814800 */ mtc1 $at, $f9
-/* 011EC4 800112C4 462A2180 */ add.d $f6, $f4, $f10
-/* 011EC8 800112C8 4628A102 */ mul.d $f4, $f20, $f8
-/* 011ECC 800112CC 462033A0 */ cvt.s.d $f14, $f6
-/* 011ED0 800112D0 46342282 */ mul.d $f10, $f4, $f20
-/* 011ED4 800112D4 C7A600E0 */ lwc1 $f6, 0xe0($sp)
-/* 011ED8 800112D8 C7A400D8 */ lwc1 $f4, 0xd8($sp)
-/* 011EDC 800112DC 46061202 */ mul.s $f8, $f2, $f6
-/* 011EE0 800112E0 46205420 */ cvt.s.d $f16, $f10
-/* 011EE4 800112E4 46047282 */ mul.s $f10, $f14, $f4
-/* 011EE8 800112E8 C7A400D0 */ lwc1 $f4, 0xd0($sp)
-/* 011EEC 800112EC 460A4180 */ add.s $f6, $f8, $f10
-/* 011EF0 800112F0 46048202 */ mul.s $f8, $f16, $f4
-/* 011EF4 800112F4 C7A400DC */ lwc1 $f4, 0xdc($sp)
-/* 011EF8 800112F8 C7AA00C0 */ lwc1 $f10, 0xc0($sp)
-/* 011EFC 800112FC 46083600 */ add.s $f24, $f6, $f8
-/* 011F00 80011300 46041182 */ mul.s $f6, $f2, $f4
-/* 011F04 80011304 C7A800D4 */ lwc1 $f8, 0xd4($sp)
-/* 011F08 80011308 460AC481 */ sub.s $f18, $f24, $f10
-/* 011F0C 8001130C 46087282 */ mul.s $f10, $f14, $f8
-/* 011F10 80011310 C7A800CC */ lwc1 $f8, 0xcc($sp)
-/* 011F14 80011314 460A3100 */ add.s $f4, $f6, $f10
-/* 011F18 80011318 46088182 */ mul.s $f6, $f16, $f8
-/* 011F1C 8001131C C7AA00B8 */ lwc1 $f10, 0xb8($sp)
-/* 011F20 80011320 46129202 */ mul.s $f8, $f18, $f18
-/* 011F24 80011324 46062680 */ add.s $f26, $f4, $f6
-/* 011F28 80011328 460AD581 */ sub.s $f22, $f26, $f10
-/* 011F2C 8001132C 4616B102 */ mul.s $f4, $f22, $f22
-/* 011F30 80011330 0C033850 */ jal sqrtf
-/* 011F34 80011334 46044300 */ add.s $f12, $f8, $f4
-/* 011F38 80011338 4600F780 */ add.s $f30, $f30, $f0
-/* 011F3C 8001133C 3C0141A0 */ li $at, 0x41A00000 # 20.000000
-/* 011F40 80011340 44813000 */ mtc1 $at, $f6
-/* 011F44 80011344 E7B800C0 */ swc1 $f24, 0xc0($sp)
-/* 011F48 80011348 E7BA00B8 */ swc1 $f26, 0xb8($sp)
-/* 011F4C 8001134C 461E303C */ c.lt.s $f6, $f30
-/* 011F50 80011350 00000000 */ nop
-/* 011F54 80011354 4503000B */ bc1tl .L80011384
-/* 011F58 80011358 8E890000 */ lw $t1, ($s4)
-/* 011F5C 8001135C 56600083 */ bnel $s3, $zero, .L8001156C
-/* 011F60 80011360 C7A40094 */ lwc1 $f4, 0x94($sp)
-/* 011F64 80011364 44805800 */ mtc1 $zero, $f11
-/* 011F68 80011368 44805000 */ mtc1 $zero, $f10
-/* 011F6C 8001136C 00000000 */ nop
-/* 011F70 80011370 46345032 */ c.eq.d $f10, $f20
-/* 011F74 80011374 00000000 */ nop
-/* 011F78 80011378 4502007C */ bc1fl .L8001156C
-/* 011F7C 8001137C C7A40094 */ lwc1 $f4, 0x94($sp)
-/* 011F80 80011380 8E890000 */ lw $t1, ($s4)
-.L80011384:
-/* 011F84 80011384 5120000E */ beql $t1, $zero, .L800113C0
-/* 011F88 80011388 4600C10D */ trunc.w.s $f4, $f24
-/* 011F8C 8001138C 4600C307 */ neg.s $f12, $f24
-/* 011F90 80011390 4406D000 */ mfc1 $a2, $f26
-/* 011F94 80011394 4600620D */ trunc.w.s $f8, $f12
-/* 011F98 80011398 4600E386 */ mov.s $f14, $f28
-/* 011F9C 8001139C 440B4000 */ mfc1 $t3, $f8
-/* 011FA0 800113A0 00000000 */ nop
-/* 011FA4 800113A4 A62B0000 */ sh $t3, ($s1)
-/* 011FA8 800113A8 AFB00010 */ sw $s0, 0x10($sp)
-/* 011FAC 800113AC 0C0043E8 */ jal func_80010FA0
-/* 011FB0 800113B0 86470000 */ lh $a3, ($s2)
-/* 011FB4 800113B4 1000000C */ b .L800113E8
-/* 011FB8 800113B8 46000506 */ mov.s $f20, $f0
-/* 011FBC 800113BC 4600C10D */ trunc.w.s $f4, $f24
-.L800113C0:
-/* 011FC0 800113C0 4406D000 */ mfc1 $a2, $f26
-/* 011FC4 800113C4 4600C306 */ mov.s $f12, $f24
-/* 011FC8 800113C8 4600E386 */ mov.s $f14, $f28
-/* 011FCC 800113CC 440D2000 */ mfc1 $t5, $f4
-/* 011FD0 800113D0 00000000 */ nop
-/* 011FD4 800113D4 A62D0000 */ sh $t5, ($s1)
-/* 011FD8 800113D8 AFB00010 */ sw $s0, 0x10($sp)
-/* 011FDC 800113DC 0C0043E8 */ jal func_80010FA0
-/* 011FE0 800113E0 86470000 */ lh $a3, ($s2)
-/* 011FE4 800113E4 46000506 */ mov.s $f20, $f0
-.L800113E8:
-/* 011FE8 800113E8 4600D18D */ trunc.w.s $f6, $f26
-/* 011FEC 800113EC 440F3000 */ mfc1 $t7, $f6
-/* 011FF0 800113F0 00000000 */ nop
-/* 011FF4 800113F4 A62F0004 */ sh $t7, 4($s1)
-/* 011FF8 800113F8 0C0AAF50 */ jal func_802ABD40
-/* 011FFC 800113FC 96A4000A */ lhu $a0, 0xa($s5)
-/* 012000 80011400 A6220006 */ sh $v0, 6($s1)
-/* 012004 80011404 3C01800F */ lui $at, %hi(D_800ED070)
-/* 012008 80011408 D42AD070 */ ldc1 $f10, %lo(D_800ED070)($at)
-/* 01200C 8001140C 4600A0A1 */ cvt.d.s $f2, $f20
-/* 012010 80011410 462A103C */ c.lt.d $f2, $f10
-/* 012014 80011414 00000000 */ nop
-/* 012018 80011418 45020004 */ bc1fl .L8001142C
-/* 01201C 8001141C 86420000 */ lh $v0, ($s2)
-/* 012020 80011420 1000004A */ b .L8001154C
-/* 012024 80011424 4600E506 */ mov.s $f20, $f28
-/* 012028 80011428 86420000 */ lh $v0, ($s2)
-.L8001142C:
-/* 01202C 8001142C 3C01402E */ li $at, 0x402E0000 # 2.718750
-/* 012030 80011430 50560008 */ beql $v0, $s6, .L80011454
-/* 012034 80011434 44812800 */ mtc1 $at, $f5
-/* 012038 80011438 1057000F */ beq $v0, $s7, .L80011478
-/* 01203C 8001143C 2A010474 */ slti $at, $s0, 0x474
-/* 012040 80011440 105E0023 */ beq $v0, $fp, .L800114D0
-/* 012044 80011444 2A0100CD */ slti $at, $s0, 0xcd
-/* 012048 80011448 10000037 */ b .L80011528
-/* 01204C 8001144C 3C014024 */ li $at, 0x40240000 # 2.562500
-/* 012050 80011450 44812800 */ mtc1 $at, $f5
-.L80011454:
-/* 012054 80011454 44802000 */ mtc1 $zero, $f4
-/* 012058 80011458 4600E221 */ cvt.d.s $f8, $f28
-/* 01205C 8001145C 46244001 */ sub.d $f0, $f8, $f4
-/* 012060 80011460 4620103C */ c.lt.d $f2, $f0
-/* 012064 80011464 00000000 */ nop
-/* 012068 80011468 45020039 */ bc1fl .L80011550
-/* 01206C 8001146C 4600A20D */ trunc.w.s $f8, $f20
-/* 012070 80011470 10000036 */ b .L8001154C
-/* 012074 80011474 46200520 */ cvt.s.d $f20, $f0
-.L80011478:
-/* 012078 80011478 14200005 */ bnez $at, .L80011490
-/* 01207C 8001147C 2A010481 */ slti $at, $s0, 0x481
-/* 012080 80011480 50200004 */ beql $at, $zero, .L80011494
-/* 012084 80011484 3C014024 */ lui $at, 0x4024
-/* 012088 80011488 10000030 */ b .L8001154C
-/* 01208C 8001148C 4600E506 */ mov.s $f20, $f28
-.L80011490:
-/* 012090 80011490 3C014024 */ li $at, 0x40240000 # 2.562500
-.L80011494:
-/* 012094 80011494 44813800 */ mtc1 $at, $f7
-/* 012098 80011498 44803000 */ mtc1 $zero, $f6
-/* 01209C 8001149C 4600E021 */ cvt.d.s $f0, $f28
-/* 0120A0 800114A0 3C014010 */ li $at, 0x40100000 # 2.250000
-/* 0120A4 800114A4 46260281 */ sub.d $f10, $f0, $f6
-/* 0120A8 800114A8 462A103C */ c.lt.d $f2, $f10
-/* 0120AC 800114AC 00000000 */ nop
-/* 0120B0 800114B0 45020027 */ bc1fl .L80011550
-/* 0120B4 800114B4 4600A20D */ trunc.w.s $f8, $f20
-/* 0120B8 800114B8 44814800 */ mtc1 $at, $f9
-/* 0120BC 800114BC 44804000 */ mtc1 $zero, $f8
-/* 0120C0 800114C0 00000000 */ nop
-/* 0120C4 800114C4 46280101 */ sub.d $f4, $f0, $f8
-/* 0120C8 800114C8 10000020 */ b .L8001154C
-/* 0120CC 800114CC 46202520 */ cvt.s.d $f20, $f4
-.L800114D0:
-/* 0120D0 800114D0 14200005 */ bnez $at, .L800114E8
-/* 0120D4 800114D4 2A0100DC */ slti $at, $s0, 0xdc
-/* 0120D8 800114D8 50200004 */ beql $at, $zero, .L800114EC
-/* 0120DC 800114DC 3C014024 */ li $at, 0x40240000 # 2.562500
-/* 0120E0 800114E0 1000001A */ b .L8001154C
-/* 0120E4 800114E4 4600E506 */ mov.s $f20, $f28
-.L800114E8:
-/* 0120E8 800114E8 3C014024 */ li $at, 0x40240000 # 2.562500
-.L800114EC:
-/* 0120EC 800114EC 44813800 */ mtc1 $at, $f7
-/* 0120F0 800114F0 44803000 */ mtc1 $zero, $f6
-/* 0120F4 800114F4 4600E021 */ cvt.d.s $f0, $f28
-/* 0120F8 800114F8 3C014010 */ li $at, 0x40100000 # 2.250000
-/* 0120FC 800114FC 46260281 */ sub.d $f10, $f0, $f6
-/* 012100 80011500 462A103C */ c.lt.d $f2, $f10
-/* 012104 80011504 00000000 */ nop
-/* 012108 80011508 45020011 */ bc1fl .L80011550
-/* 01210C 8001150C 4600A20D */ trunc.w.s $f8, $f20
-/* 012110 80011510 44814800 */ mtc1 $at, $f9
-/* 012114 80011514 44804000 */ mtc1 $zero, $f8
-/* 012118 80011518 00000000 */ nop
-/* 01211C 8001151C 46280101 */ sub.d $f4, $f0, $f8
-/* 012120 80011520 1000000A */ b .L8001154C
-/* 012124 80011524 46202520 */ cvt.s.d $f20, $f4
-.L80011528:
-/* 012128 80011528 44815800 */ mtc1 $at, $f11
-/* 01212C 8001152C 44805000 */ mtc1 $zero, $f10
-/* 012130 80011530 4600E1A1 */ cvt.d.s $f6, $f28
-/* 012134 80011534 462A3001 */ sub.d $f0, $f6, $f10
-/* 012138 80011538 4620103C */ c.lt.d $f2, $f0
-/* 01213C 8001153C 00000000 */ nop
-/* 012140 80011540 45020003 */ bc1fl .L80011550
-/* 012144 80011544 4600A20D */ trunc.w.s $f8, $f20
-/* 012148 80011548 46200520 */ cvt.s.d $f20, $f0
-.L8001154C:
-/* 01214C 8001154C 4600A20D */ trunc.w.s $f8, $f20
-.L80011550:
-/* 012150 80011550 4480F000 */ mtc1 $zero, $f30
-/* 012154 80011554 4600A706 */ mov.s $f28, $f20
-/* 012158 80011558 26310008 */ addiu $s1, $s1, 8
-/* 01215C 8001155C 44194000 */ mfc1 $t9, $f8
-/* 012160 80011560 26100001 */ addiu $s0, $s0, 1
-/* 012164 80011564 A639FFFA */ sh $t9, -6($s1)
-/* 012168 80011568 C7A40094 */ lwc1 $f4, 0x94($sp)
-.L8001156C:
-/* 01216C 8001156C C7A000AC */ lwc1 $f0, 0xac($sp)
-/* 012170 80011570 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
-/* 012174 80011574 44813800 */ mtc1 $at, $f7
-/* 012178 80011578 46040000 */ add.s $f0, $f0, $f4
-/* 01217C 8001157C 44803000 */ mtc1 $zero, $f6
-/* 012180 80011580 46000521 */ cvt.d.s $f20, $f0
-/* 012184 80011584 E7A000AC */ swc1 $f0, 0xac($sp)
-/* 012188 80011588 4626A03E */ c.le.d $f20, $f6
-/* 01218C 8001158C 00000000 */ nop
-/* 012190 80011590 4503FF3D */ bc1tl .L80011288
-/* 012194 80011594 3C013FF0 */ lui $at, 0x3ff0
-.L80011598:
-/* 012198 80011598 8FB30084 */ lw $s3, 0x84($sp)
-/* 01219C 8001159C 8FA800F8 */ lw $t0, 0xf8($sp)
-/* 0121A0 800115A0 5668FED3 */ bnel $s3, $t0, .L800110F0
-/* 0121A4 800115A4 8FA500F8 */ lw $a1, 0xf8($sp)
-.L800115A8:
-/* 0121A8 800115A8 8FBF0074 */ lw $ra, 0x74($sp)
-/* 0121AC 800115AC 02001025 */ move $v0, $s0
-/* 0121B0 800115B0 8FB00050 */ lw $s0, 0x50($sp)
-/* 0121B4 800115B4 D7B40020 */ ldc1 $f20, 0x20($sp)
-/* 0121B8 800115B8 D7B60028 */ ldc1 $f22, 0x28($sp)
-/* 0121BC 800115BC D7B80030 */ ldc1 $f24, 0x30($sp)
-/* 0121C0 800115C0 D7BA0038 */ ldc1 $f26, 0x38($sp)
-/* 0121C4 800115C4 D7BC0040 */ ldc1 $f28, 0x40($sp)
-/* 0121C8 800115C8 D7BE0048 */ ldc1 $f30, 0x48($sp)
-/* 0121CC 800115CC 8FB10054 */ lw $s1, 0x54($sp)
-/* 0121D0 800115D0 8FB20058 */ lw $s2, 0x58($sp)
-/* 0121D4 800115D4 8FB3005C */ lw $s3, 0x5c($sp)
-/* 0121D8 800115D8 8FB40060 */ lw $s4, 0x60($sp)
-/* 0121DC 800115DC 8FB50064 */ lw $s5, 0x64($sp)
-/* 0121E0 800115E0 8FB60068 */ lw $s6, 0x68($sp)
-/* 0121E4 800115E4 8FB7006C */ lw $s7, 0x6c($sp)
-/* 0121E8 800115E8 8FBE0070 */ lw $fp, 0x70($sp)
-/* 0121EC 800115EC 03E00008 */ jr $ra
-/* 0121F0 800115F0 27BD00F0 */ addiu $sp, $sp, 0xf0
diff --git a/asm/non_matchings/code_80005FD0/func_8001168C.s b/asm/non_matchings/code_80005FD0/func_8001168C.s
deleted file mode 100644
index d43b0ca30..000000000
--- a/asm/non_matchings/code_80005FD0/func_8001168C.s
+++ /dev/null
@@ -1,266 +0,0 @@
-.section .late_rodata
-
-glabel D_800ED078
-.double 0.05
-
-.section .text
-
-glabel func_8001168C
-/* 01228C 8001168C 27BDFF28 */ addiu $sp, $sp, -0xd8
-/* 012290 80011690 44802000 */ mtc1 $zero, $f4
-/* 012294 80011694 AFBF0064 */ sw $ra, 0x64($sp)
-/* 012298 80011698 AFB60060 */ sw $s6, 0x60($sp)
-/* 01229C 8001169C AFB5005C */ sw $s5, 0x5c($sp)
-/* 0122A0 800116A0 AFB40058 */ sw $s4, 0x58($sp)
-/* 0122A4 800116A4 AFB30054 */ sw $s3, 0x54($sp)
-/* 0122A8 800116A8 AFB20050 */ sw $s2, 0x50($sp)
-/* 0122AC 800116AC AFB1004C */ sw $s1, 0x4c($sp)
-/* 0122B0 800116B0 AFB00048 */ sw $s0, 0x48($sp)
-/* 0122B4 800116B4 F7BE0040 */ sdc1 $f30, 0x40($sp)
-/* 0122B8 800116B8 F7BC0038 */ sdc1 $f28, 0x38($sp)
-/* 0122BC 800116BC F7BA0030 */ sdc1 $f26, 0x30($sp)
-/* 0122C0 800116C0 F7B80028 */ sdc1 $f24, 0x28($sp)
-/* 0122C4 800116C4 F7B60020 */ sdc1 $f22, 0x20($sp)
-/* 0122C8 800116C8 F7B40018 */ sdc1 $f20, 0x18($sp)
-/* 0122CC 800116CC E7A40084 */ swc1 $f4, 0x84($sp)
-/* 0122D0 800116D0 84AE0000 */ lh $t6, ($a1)
-/* 0122D4 800116D4 3C13800E */ lui $s3, %hi(gIsMirrorMode)
-/* 0122D8 800116D8 00808025 */ move $s0, $a0
-/* 0122DC 800116DC 448E3000 */ mtc1 $t6, $f6
-/* 0122E0 800116E0 00C0A025 */ move $s4, $a2
-/* 0122E4 800116E4 00A0B025 */ move $s6, $a1
-/* 0122E8 800116E8 46803220 */ cvt.s.w $f8, $f6
-/* 0122EC 800116EC 00008825 */ move $s1, $zero
-/* 0122F0 800116F0 2673C604 */ addiu $s3, %lo(gIsMirrorMode) # addiu $s3, $s3, -0x39fc
-/* 0122F4 800116F4 00009025 */ move $s2, $zero
-/* 0122F8 800116F8 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
-/* 0122FC 800116FC E7A800A8 */ swc1 $f8, 0xa8($sp)
-/* 012300 80011700 84AF0004 */ lh $t7, 4($a1)
-/* 012304 80011704 448F5000 */ mtc1 $t7, $f10
-/* 012308 80011708 00000000 */ nop
-/* 01230C 8001170C 46805120 */ cvt.s.w $f4, $f10
-/* 012310 80011710 18C000C1 */ blez $a2, .L80011A18
-/* 012314 80011714 E7A400A0 */ swc1 $f4, 0xa0($sp)
-/* 012318 80011718 44803000 */ mtc1 $zero, $f6
-/* 01231C 8001171C 4481F800 */ mtc1 $at, $f31
-/* 012320 80011720 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
-/* 012324 80011724 46003221 */ cvt.d.s $f8, $f6
-/* 012328 80011728 4481E800 */ mtc1 $at, $f29
-/* 01232C 8001172C 4480F000 */ mtc1 $zero, $f30
-/* 012330 80011730 4480E000 */ mtc1 $zero, $f28
-/* 012334 80011734 F7A80068 */ sdc1 $f8, 0x68($sp)
-.L80011738:
-/* 012338 80011738 0254001A */ div $zero, $s2, $s4
-/* 01233C 8001173C 0000C010 */ mfhi $t8
-/* 012340 80011740 26550001 */ addiu $s5, $s2, 1
-/* 012344 80011744 264E0002 */ addiu $t6, $s2, 2
-/* 012348 80011748 02B4001A */ div $zero, $s5, $s4
-/* 01234C 8001174C 00005010 */ mfhi $t2
-/* 012350 80011750 0018C8C0 */ sll $t9, $t8, 3
-/* 012354 80011754 03361021 */ addu $v0, $t9, $s6
-/* 012358 80011758 01D4001A */ div $zero, $t6, $s4
-/* 01235C 8001175C 84480000 */ lh $t0, ($v0)
-/* 012360 80011760 000A58C0 */ sll $t3, $t2, 3
-/* 012364 80011764 00007810 */ mfhi $t7
-/* 012368 80011768 01761821 */ addu $v1, $t3, $s6
-/* 01236C 8001176C 000FC0C0 */ sll $t8, $t7, 3
-/* 012370 80011770 84490004 */ lh $t1, 4($v0)
-/* 012374 80011774 846C0000 */ lh $t4, ($v1)
-/* 012378 80011778 44885000 */ mtc1 $t0, $f10
-/* 01237C 8001177C 03162021 */ addu $a0, $t8, $s6
-/* 012380 80011780 84990000 */ lh $t9, ($a0)
-/* 012384 80011784 468053A0 */ cvt.s.w $f14, $f10
-/* 012388 80011788 846D0004 */ lh $t5, 4($v1)
-/* 01238C 8001178C 44892000 */ mtc1 $t1, $f4
-/* 012390 80011790 448C3000 */ mtc1 $t4, $f6
-/* 012394 80011794 44995000 */ mtc1 $t9, $f10
-/* 012398 80011798 46802420 */ cvt.s.w $f16, $f4
-/* 01239C 8001179C 448D4000 */ mtc1 $t5, $f8
-/* 0123A0 800117A0 16800002 */ bnez $s4, .L800117AC
-/* 0123A4 800117A4 00000000 */ nop
-/* 0123A8 800117A8 0007000D */ break 7
-.L800117AC:
-/* 0123AC 800117AC 2401FFFF */ li $at, -1
-/* 0123B0 800117B0 16810004 */ bne $s4, $at, .L800117C4
-/* 0123B4 800117B4 3C018000 */ lui $at, 0x8000
-/* 0123B8 800117B8 16410002 */ bne $s2, $at, .L800117C4
-/* 0123BC 800117BC 00000000 */ nop
-/* 0123C0 800117C0 0006000D */ break 6
-.L800117C4:
-/* 0123C4 800117C4 468034A0 */ cvt.s.w $f18, $f6
-/* 0123C8 800117C8 16800002 */ bnez $s4, .L800117D4
-/* 0123CC 800117CC 00000000 */ nop
-/* 0123D0 800117D0 0007000D */ break 7
-.L800117D4:
-/* 0123D4 800117D4 2401FFFF */ li $at, -1
-/* 0123D8 800117D8 16810004 */ bne $s4, $at, .L800117EC
-/* 0123DC 800117DC 3C018000 */ lui $at, 0x8000
-/* 0123E0 800117E0 16A10002 */ bne $s5, $at, .L800117EC
-/* 0123E4 800117E4 00000000 */ nop
-/* 0123E8 800117E8 0006000D */ break 6
-.L800117EC:
-/* 0123EC 800117EC 46805120 */ cvt.s.w $f4, $f10
-/* 0123F0 800117F0 46804520 */ cvt.s.w $f20, $f8
-/* 0123F4 800117F4 E7A400B8 */ swc1 $f4, 0xb8($sp)
-/* 0123F8 800117F8 84880004 */ lh $t0, 4($a0)
-/* 0123FC 800117FC 16800002 */ bnez $s4, .L80011808
-/* 012400 80011800 00000000 */ nop
-/* 012404 80011804 0007000D */ break 7
-.L80011808:
-/* 012408 80011808 2401FFFF */ li $at, -1
-/* 01240C 8001180C 16810004 */ bne $s4, $at, .L80011820
-/* 012410 80011810 3C018000 */ lui $at, 0x8000
-/* 012414 80011814 15C10002 */ bne $t6, $at, .L80011820
-/* 012418 80011818 00000000 */ nop
-/* 01241C 8001181C 0006000D */ break 6
-.L80011820:
-/* 012420 80011820 460E9001 */ sub.s $f0, $f18, $f14
-/* 012424 80011824 44883000 */ mtc1 $t0, $f6
-/* 012428 80011828 E7B400BC */ swc1 $f20, 0xbc($sp)
-/* 01242C 8001182C 4610A081 */ sub.s $f2, $f20, $f16
-/* 012430 80011830 46000282 */ mul.s $f10, $f0, $f0
-/* 012434 80011834 E7B200C0 */ swc1 $f18, 0xc0($sp)
-/* 012438 80011838 E7B000C4 */ swc1 $f16, 0xc4($sp)
-/* 01243C 8001183C 46021102 */ mul.s $f4, $f2, $f2
-/* 012440 80011840 E7AE00C8 */ swc1 $f14, 0xc8($sp)
-/* 012444 80011844 46803220 */ cvt.s.w $f8, $f6
-/* 012448 80011848 44803000 */ mtc1 $zero, $f6
-/* 01244C 8001184C 00000000 */ nop
-/* 012450 80011850 E7A60094 */ swc1 $f6, 0x94($sp)
-/* 012454 80011854 46045300 */ add.s $f12, $f10, $f4
-/* 012458 80011858 0C033850 */ jal sqrtf
-/* 01245C 8001185C E7A800B4 */ swc1 $f8, 0xb4($sp)
-/* 012460 80011860 C7A800B8 */ lwc1 $f8, 0xb8($sp)
-/* 012464 80011864 C7AA00C0 */ lwc1 $f10, 0xc0($sp)
-/* 012468 80011868 C7A400B4 */ lwc1 $f4, 0xb4($sp)
-/* 01246C 8001186C C7A600BC */ lwc1 $f6, 0xbc($sp)
-/* 012470 80011870 460A4081 */ sub.s $f2, $f8, $f10
-/* 012474 80011874 46000506 */ mov.s $f20, $f0
-/* 012478 80011878 46062381 */ sub.s $f14, $f4, $f6
-/* 01247C 8001187C 46021202 */ mul.s $f8, $f2, $f2
-/* 012480 80011880 00000000 */ nop
-/* 012484 80011884 460E7282 */ mul.s $f10, $f14, $f14
-/* 012488 80011888 0C033850 */ jal sqrtf
-/* 01248C 8001188C 460A4300 */ add.s $f12, $f8, $f10
-/* 012490 80011890 46140180 */ add.s $f6, $f0, $f20
-/* 012494 80011894 3C01800F */ lui $at, %hi(D_800ED078)
-/* 012498 80011898 D424D078 */ ldc1 $f4, %lo(D_800ED078)($at)
-/* 01249C 8001189C 46003221 */ cvt.d.s $f8, $f6
-/* 0124A0 800118A0 46282283 */ div.d $f10, $f4, $f8
-/* 0124A4 800118A4 D7A40068 */ ldc1 $f4, 0x68($sp)
-/* 0124A8 800118A8 463E203E */ c.le.d $f4, $f30
-/* 0124AC 800118AC 462051A0 */ cvt.s.d $f6, $f10
-/* 0124B0 800118B0 45000057 */ bc1f .L80011A10
-/* 0124B4 800118B4 E7A6007C */ swc1 $f6, 0x7c($sp)
-/* 0124B8 800118B8 C7A80094 */ lwc1 $f8, 0x94($sp)
-/* 0124BC 800118BC 46004521 */ cvt.d.s $f20, $f8
-/* 0124C0 800118C0 4634F001 */ sub.d $f0, $f30, $f20
-.L800118C4:
-/* 0124C4 800118C4 463C0282 */ mul.d $f10, $f0, $f28
-/* 0124C8 800118C8 00000000 */ nop
-/* 0124CC 800118CC 46205182 */ mul.d $f6, $f10, $f0
-/* 0124D0 800118D0 00000000 */ nop
-/* 0124D4 800118D4 46340102 */ mul.d $f4, $f0, $f20
-/* 0124D8 800118D8 00000000 */ nop
-/* 0124DC 800118DC 463CA282 */ mul.d $f10, $f20, $f28
-/* 0124E0 800118E0 463C2200 */ add.d $f8, $f4, $f28
-/* 0124E4 800118E4 C7A400C8 */ lwc1 $f4, 0xc8($sp)
-/* 0124E8 800118E8 462030A0 */ cvt.s.d $f2, $f6
-/* 0124EC 800118EC 46345182 */ mul.d $f6, $f10, $f20
-/* 0124F0 800118F0 C7AA00C0 */ lwc1 $f10, 0xc0($sp)
-/* 0124F4 800118F4 462043A0 */ cvt.s.d $f14, $f8
-/* 0124F8 800118F8 46041202 */ mul.s $f8, $f2, $f4
-/* 0124FC 800118FC 46203420 */ cvt.s.d $f16, $f6
-/* 012500 80011900 460A7182 */ mul.s $f6, $f14, $f10
-/* 012504 80011904 C7AA00B8 */ lwc1 $f10, 0xb8($sp)
-/* 012508 80011908 46064100 */ add.s $f4, $f8, $f6
-/* 01250C 8001190C 460A8202 */ mul.s $f8, $f16, $f10
-/* 012510 80011910 C7AA00C4 */ lwc1 $f10, 0xc4($sp)
-/* 012514 80011914 C7A600A8 */ lwc1 $f6, 0xa8($sp)
-/* 012518 80011918 46082600 */ add.s $f24, $f4, $f8
-/* 01251C 8001191C 460A1102 */ mul.s $f4, $f2, $f10
-/* 012520 80011920 C7A800BC */ lwc1 $f8, 0xbc($sp)
-/* 012524 80011924 4606C481 */ sub.s $f18, $f24, $f6
-/* 012528 80011928 46087182 */ mul.s $f6, $f14, $f8
-/* 01252C 8001192C C7A800B4 */ lwc1 $f8, 0xb4($sp)
-/* 012530 80011930 46062280 */ add.s $f10, $f4, $f6
-/* 012534 80011934 46088102 */ mul.s $f4, $f16, $f8
-/* 012538 80011938 C7A600A0 */ lwc1 $f6, 0xa0($sp)
-/* 01253C 8001193C 46129202 */ mul.s $f8, $f18, $f18
-/* 012540 80011940 46045680 */ add.s $f26, $f10, $f4
-/* 012544 80011944 4606D581 */ sub.s $f22, $f26, $f6
-/* 012548 80011948 4616B282 */ mul.s $f10, $f22, $f22
-/* 01254C 8001194C 0C033850 */ jal sqrtf
-/* 012550 80011950 460A4300 */ add.s $f12, $f8, $f10
-/* 012554 80011954 C7A40084 */ lwc1 $f4, 0x84($sp)
-/* 012558 80011958 3C0141A0 */ li $at, 0x41A00000 # 20.000000
-/* 01255C 8001195C 44814000 */ mtc1 $at, $f8
-/* 012560 80011960 46002180 */ add.s $f6, $f4, $f0
-/* 012564 80011964 E7B800A8 */ swc1 $f24, 0xa8($sp)
-/* 012568 80011968 E7BA00A0 */ swc1 $f26, 0xa0($sp)
-/* 01256C 8001196C 4606403C */ c.lt.s $f8, $f6
-/* 012570 80011970 E7A60084 */ swc1 $f6, 0x84($sp)
-/* 012574 80011974 4503000B */ bc1tl .L800119A4
-/* 012578 80011978 8E690000 */ lw $t1, ($s3)
-/* 01257C 8001197C 5640001C */ bnel $s2, $zero, .L800119F0
-/* 012580 80011980 C7A8007C */ lwc1 $f8, 0x7c($sp)
-/* 012584 80011984 44805800 */ mtc1 $zero, $f11
-/* 012588 80011988 44805000 */ mtc1 $zero, $f10
-/* 01258C 8001198C 00000000 */ nop
-/* 012590 80011990 46345032 */ c.eq.d $f10, $f20
-/* 012594 80011994 00000000 */ nop
-/* 012598 80011998 45020015 */ bc1fl .L800119F0
-/* 01259C 8001199C C7A8007C */ lwc1 $f8, 0x7c($sp)
-/* 0125A0 800119A0 8E690000 */ lw $t1, ($s3)
-.L800119A4:
-/* 0125A4 800119A4 4600D28D */ trunc.w.s $f10, $f26
-/* 0125A8 800119A8 26310001 */ addiu $s1, $s1, 1
-/* 0125AC 800119AC 51200007 */ beql $t1, $zero, .L800119CC
-/* 0125B0 800119B0 4600C18D */ trunc.w.s $f6, $f24
-/* 0125B4 800119B4 4600C107 */ neg.s $f4, $f24
-/* 0125B8 800119B8 4600220D */ trunc.w.s $f8, $f4
-/* 0125BC 800119BC 440B4000 */ mfc1 $t3, $f8
-/* 0125C0 800119C0 10000005 */ b .L800119D8
-/* 0125C4 800119C4 A60B0000 */ sh $t3, ($s0)
-/* 0125C8 800119C8 4600C18D */ trunc.w.s $f6, $f24
-.L800119CC:
-/* 0125CC 800119CC 440D3000 */ mfc1 $t5, $f6
-/* 0125D0 800119D0 00000000 */ nop
-/* 0125D4 800119D4 A60D0000 */ sh $t5, ($s0)
-.L800119D8:
-/* 0125D8 800119D8 440F5000 */ mfc1 $t7, $f10
-/* 0125DC 800119DC 44802000 */ mtc1 $zero, $f4
-/* 0125E0 800119E0 26100004 */ addiu $s0, $s0, 4
-/* 0125E4 800119E4 A60FFFFE */ sh $t7, -2($s0)
-/* 0125E8 800119E8 E7A40084 */ swc1 $f4, 0x84($sp)
-/* 0125EC 800119EC C7A8007C */ lwc1 $f8, 0x7c($sp)
-.L800119F0:
-/* 0125F0 800119F0 C7A00094 */ lwc1 $f0, 0x94($sp)
-/* 0125F4 800119F4 46080000 */ add.s $f0, $f0, $f8
-/* 0125F8 800119F8 46000521 */ cvt.d.s $f20, $f0
-/* 0125FC 800119FC E7A00094 */ swc1 $f0, 0x94($sp)
-/* 012600 80011A00 463EA03E */ c.le.d $f20, $f30
-/* 012604 80011A04 00000000 */ nop
-/* 012608 80011A08 4503FFAE */ bc1tl .L800118C4
-/* 01260C 80011A0C 4634F001 */ sub.d $f0, $f30, $f20
-.L80011A10:
-/* 012610 80011A10 16B4FF49 */ bne $s5, $s4, .L80011738
-/* 012614 80011A14 02A09025 */ move $s2, $s5
-.L80011A18:
-/* 012618 80011A18 8FBF0064 */ lw $ra, 0x64($sp)
-/* 01261C 80011A1C 02201025 */ move $v0, $s1
-/* 012620 80011A20 8FB1004C */ lw $s1, 0x4c($sp)
-/* 012624 80011A24 D7B40018 */ ldc1 $f20, 0x18($sp)
-/* 012628 80011A28 D7B60020 */ ldc1 $f22, 0x20($sp)
-/* 01262C 80011A2C D7B80028 */ ldc1 $f24, 0x28($sp)
-/* 012630 80011A30 D7BA0030 */ ldc1 $f26, 0x30($sp)
-/* 012634 80011A34 D7BC0038 */ ldc1 $f28, 0x38($sp)
-/* 012638 80011A38 D7BE0040 */ ldc1 $f30, 0x40($sp)
-/* 01263C 80011A3C 8FB00048 */ lw $s0, 0x48($sp)
-/* 012640 80011A40 8FB20050 */ lw $s2, 0x50($sp)
-/* 012644 80011A44 8FB30054 */ lw $s3, 0x54($sp)
-/* 012648 80011A48 8FB40058 */ lw $s4, 0x58($sp)
-/* 01264C 80011A4C 8FB5005C */ lw $s5, 0x5c($sp)
-/* 012650 80011A50 8FB60060 */ lw $s6, 0x60($sp)
-/* 012654 80011A54 03E00008 */ jr $ra
-/* 012658 80011A58 27BD00D8 */ addiu $sp, $sp, 0xd8
diff --git a/asm/non_matchings/code_80005FD0/func_800133C4.s b/asm/non_matchings/code_80005FD0/func_800133C4.s
deleted file mode 100644
index 009c9ba79..000000000
--- a/asm/non_matchings/code_80005FD0/func_800133C4.s
+++ /dev/null
@@ -1,332 +0,0 @@
-.section .late_rodata
-
-glabel D_800ED130
-.double 45.0
-
-glabel D_800ED138
-.double 180.0
-
-glabel D_800ED140
-.double 0.2
-
-glabel D_800ED148
-.double 0.04
-
-glabel D_800ED150
-.double 0.02
-
-.section .text
-
-glabel func_800133C4
-/* 013FC4 800133C4 27BDFF38 */ addiu $sp, $sp, -0xc8
-/* 013FC8 800133C8 3C0E8016 */ lui $t6, %hi(D_801630FC) # $t6, 0x8016
-/* 013FCC 800133CC 85CE30FC */ lh $t6, %lo(D_801630FC)($t6)
-/* 013FD0 800133D0 3C018016 */ lui $at, %hi(D_801630FC) # $at, 0x8016
-/* 013FD4 800133D4 F7B80020 */ sdc1 $f24, 0x20($sp)
-/* 013FD8 800133D8 25CF0001 */ addiu $t7, $t6, 1
-/* 013FDC 800133DC A42F30FC */ sh $t7, %lo(D_801630FC)($at)
-/* 013FE0 800133E0 3C01800F */ lui $at, %hi(D_800ED130)
-/* 013FE4 800133E4 D438D130 */ ldc1 $f24, %lo(D_800ED130)($at)
-/* 013FE8 800133E8 F7B60018 */ sdc1 $f22, 0x18($sp)
-/* 013FEC 800133EC 3C01800F */ lui $at, %hi(D_800ED138)
-/* 013FF0 800133F0 F7B40010 */ sdc1 $f20, 0x10($sp)
-/* 013FF4 800133F4 D436D138 */ ldc1 $f22, %lo(D_800ED138)($at)
-/* 013FF8 800133F8 AFB00044 */ sw $s0, 0x44($sp)
-/* 013FFC 800133FC 3C01403E */ li $at, 0x403E0000 # 2.968750
-/* 014000 80013400 AFB50058 */ sw $s5, 0x58($sp)
-/* 014004 80013404 AFB40054 */ sw $s4, 0x54($sp)
-/* 014008 80013408 AFB30050 */ sw $s3, 0x50($sp)
-/* 01400C 8001340C 3C108016 */ lui $s0, %hi(D_801637C0) # $s0, 0x8016
-/* 014010 80013410 4481A800 */ mtc1 $at, $f21
-/* 014014 80013414 4480A000 */ mtc1 $zero, $f20
-/* 014018 80013418 AFBF005C */ sw $ra, 0x5c($sp)
-/* 01401C 8001341C AFB2004C */ sw $s2, 0x4c($sp)
-/* 014020 80013420 AFB10048 */ sw $s1, 0x48($sp)
-/* 014024 80013424 F7BE0038 */ sdc1 $f30, 0x38($sp)
-/* 014028 80013428 F7BC0030 */ sdc1 $f28, 0x30($sp)
-/* 01402C 8001342C F7BA0028 */ sdc1 $f26, 0x28($sp)
-/* 014030 80013430 261037C0 */ addiu $s0, %lo(D_801637C0) # addiu $s0, $s0, 0x37c0
-/* 014034 80013434 00009825 */ move $s3, $zero
-/* 014038 80013438 27B40078 */ addiu $s4, $sp, 0x78
-/* 01403C 8001343C 24150001 */ li $s5, 1
-.L80013440:
-/* 014040 80013440 86180000 */ lh $t8, ($s0)
-/* 014044 80013444 26120004 */ addiu $s2, $s0, 4
-/* 014048 80013448 02402025 */ move $a0, $s2
-/* 01404C 8001344C 16B800EF */ bne $s5, $t8, .L8001380C
-/* 014050 80013450 2605001C */ addiu $a1, $s0, 0x1c
-/* 014054 80013454 C61A0004 */ lwc1 $f26, 4($s0)
-/* 014058 80013458 C61C0008 */ lwc1 $f28, 8($s0)
-/* 01405C 8001345C C61E000C */ lwc1 $f30, 0xc($s0)
-/* 014060 80013460 0C0036EB */ jal func_8000DBAC
-/* 014064 80013464 8E060020 */ lw $a2, 0x20($s0)
-/* 014068 80013468 02402025 */ move $a0, $s2
-/* 01406C 8001346C 3C0544FA */ lui $a1, 0x44fa
-/* 014070 80013470 0C001877 */ jal func_800061DC
-/* 014074 80013474 8E060028 */ lw $a2, 0x28($s0)
-/* 014078 80013478 AE020028 */ sw $v0, 0x28($s0)
-/* 01407C 8001347C 3C198016 */ lui $t9, %hi(D_801630FC) # $t9, 0x8016
-/* 014080 80013480 873930FC */ lh $t9, %lo(D_801630FC)($t9)
-/* 014084 80013484 2401000A */ li $at, 10
-/* 014088 80013488 0321001A */ div $zero, $t9, $at
-/* 01408C 8001348C 00004010 */ mfhi $t0
-/* 014090 80013490 15000033 */ bnez $t0, .L80013560
-/* 014094 80013494 00000000 */ nop
-/* 014098 80013498 10400031 */ beqz $v0, .L80013560
-/* 01409C 8001349C 00000000 */ nop
-/* 0140A0 800134A0 C6040004 */ lwc1 $f4, 4($s0)
-/* 0140A4 800134A4 C6100008 */ lwc1 $f16, 8($s0)
-/* 0140A8 800134A8 02802025 */ move $a0, $s4
-/* 0140AC 800134AC 460021A1 */ cvt.d.s $f6, $f4
-/* 0140B0 800134B0 460084A1 */ cvt.d.s $f18, $f16
-/* 0140B4 800134B4 46343201 */ sub.d $f8, $f6, $f20
-/* 0140B8 800134B8 02402825 */ move $a1, $s2
-/* 0140BC 800134BC 86060024 */ lh $a2, 0x24($s0)
-/* 0140C0 800134C0 46369100 */ add.d $f4, $f18, $f22
-/* 0140C4 800134C4 462042A0 */ cvt.s.d $f10, $f8
-/* 0140C8 800134C8 C608000C */ lwc1 $f8, 0xc($s0)
-/* 0140CC 800134CC 462021A0 */ cvt.s.d $f6, $f4
-/* 0140D0 800134D0 E7AA0078 */ swc1 $f10, 0x78($sp)
-/* 0140D4 800134D4 460042A1 */ cvt.d.s $f10, $f8
-/* 0140D8 800134D8 E7A6007C */ swc1 $f6, 0x7c($sp)
-/* 0140DC 800134DC 46385400 */ add.d $f16, $f10, $f24
-/* 0140E0 800134E0 462084A0 */ cvt.s.d $f18, $f16
-/* 0140E4 800134E4 0C001845 */ jal func_80006114
-/* 0140E8 800134E8 E7B20080 */ swc1 $f18, 0x80($sp)
-/* 0140EC 800134EC 3C063F8C */ lui $a2, (0x3F8CCCCD >> 16) # lui $a2, 0x3f8c
-/* 0140F0 800134F0 34C6CCCD */ ori $a2, (0x3F8CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
-/* 0140F4 800134F4 02602025 */ move $a0, $s3
-/* 0140F8 800134F8 0C01D69B */ jal func_80075A6C
-/* 0140FC 800134FC 02802825 */ move $a1, $s4
-/* 014100 80013500 C6040004 */ lwc1 $f4, 4($s0)
-/* 014104 80013504 C6100008 */ lwc1 $f16, 8($s0)
-/* 014108 80013508 02802025 */ move $a0, $s4
-/* 01410C 8001350C 460021A1 */ cvt.d.s $f6, $f4
-/* 014110 80013510 460084A1 */ cvt.d.s $f18, $f16
-/* 014114 80013514 46343200 */ add.d $f8, $f6, $f20
-/* 014118 80013518 02402825 */ move $a1, $s2
-/* 01411C 8001351C 86060024 */ lh $a2, 0x24($s0)
-/* 014120 80013520 46369100 */ add.d $f4, $f18, $f22
-/* 014124 80013524 462042A0 */ cvt.s.d $f10, $f8
-/* 014128 80013528 C608000C */ lwc1 $f8, 0xc($s0)
-/* 01412C 8001352C 462021A0 */ cvt.s.d $f6, $f4
-/* 014130 80013530 E7AA0078 */ swc1 $f10, 0x78($sp)
-/* 014134 80013534 460042A1 */ cvt.d.s $f10, $f8
-/* 014138 80013538 E7A6007C */ swc1 $f6, 0x7c($sp)
-/* 01413C 8001353C 46385400 */ add.d $f16, $f10, $f24
-/* 014140 80013540 462084A0 */ cvt.s.d $f18, $f16
-/* 014144 80013544 0C001845 */ jal func_80006114
-/* 014148 80013548 E7B20080 */ swc1 $f18, 0x80($sp)
-/* 01414C 8001354C 3C063F8C */ lui $a2, (0x3F8CCCCD >> 16) # lui $a2, 0x3f8c
-/* 014150 80013550 34C6CCCD */ ori $a2, (0x3F8CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
-/* 014154 80013554 02602025 */ move $a0, $s3
-/* 014158 80013558 0C01D69B */ jal func_80075A6C
-/* 01415C 8001355C 02802825 */ move $a1, $s4
-.L80013560:
-/* 014160 80013560 0C0ADF8D */ jal random_int
-/* 014164 80013564 24040064 */ li $a0, 100
-/* 014168 80013568 54400012 */ bnel $v0, $zero, .L800135B4
-/* 01416C 8001356C 960A001C */ lhu $t2, 0x1c($s0)
-/* 014170 80013570 24040002 */ li $a0, 2
-/* 014174 80013574 0C0ADF8D */ jal random_int
-/* 014178 80013578 26110010 */ addiu $s1, $s0, 0x10
-/* 01417C 8001357C 14400008 */ bnez $v0, .L800135A0
-/* 014180 80013580 02402025 */ move $a0, $s2
-/* 014184 80013584 3C061901 */ lui $a2, (0x19018047 >> 16) # lui $a2, 0x1901
-/* 014188 80013588 34C68047 */ ori $a2, (0x19018047 & 0xFFFF) # ori $a2, $a2, 0x8047
-/* 01418C 8001358C 02402025 */ move $a0, $s2
-/* 014190 80013590 0C03262E */ jal func_800C98B8
-/* 014194 80013594 02202825 */ move $a1, $s1
-/* 014198 80013598 10000006 */ b .L800135B4
-/* 01419C 8001359C 960A001C */ lhu $t2, 0x1c($s0)
-.L800135A0:
-/* 0141A0 800135A0 3C061901 */ lui $a2, (0x19018048 >> 16) # lui $a2, 0x1901
-/* 0141A4 800135A4 34C68048 */ ori $a2, (0x19018048 & 0xFFFF) # ori $a2, $a2, 0x8048
-/* 0141A8 800135A8 0C03262E */ jal func_800C98B8
-/* 0141AC 800135AC 02202825 */ move $a1, $s1
-/* 0141B0 800135B0 960A001C */ lhu $t2, 0x1c($s0)
-.L800135B4:
-/* 0141B4 800135B4 3C0C8016 */ lui $t4, %hi(D_8016359C) # $t4, 0x8016
-/* 0141B8 800135B8 8D8C359C */ lw $t4, %lo(D_8016359C)($t4)
-/* 0141BC 800135BC 254B0005 */ addiu $t3, $t2, 5
-/* 0141C0 800135C0 3C0F8016 */ lui $t7, %hi(D_80163598) # $t7, 0x8016
-/* 0141C4 800135C4 016C001A */ div $zero, $t3, $t4
-/* 0141C8 800135C8 8DEF3598 */ lw $t7, %lo(D_80163598)($t7)
-/* 0141CC 800135CC 00006810 */ mfhi $t5
-/* 0141D0 800135D0 000D7080 */ sll $t6, $t5, 2
-/* 0141D4 800135D4 E7BA0094 */ swc1 $f26, 0x94($sp)
-/* 0141D8 800135D8 E7BC0098 */ swc1 $f28, 0x98($sp)
-/* 0141DC 800135DC E7BE009C */ swc1 $f30, 0x9c($sp)
-/* 0141E0 800135E0 3C198016 */ lui $t9, %hi(D_80162EB0) # $t9, 0x8016
-/* 0141E4 800135E4 01CF1021 */ addu $v0, $t6, $t7
-/* 0141E8 800135E8 84580000 */ lh $t8, ($v0)
-/* 0141EC 800135EC 87392EB0 */ lh $t9, %lo(D_80162EB0)($t9)
-/* 0141F0 800135F0 15800002 */ bnez $t4, .L800135FC
-/* 0141F4 800135F4 00000000 */ nop
-/* 0141F8 800135F8 0007000D */ break 7
-.L800135FC:
-/* 0141FC 800135FC 2401FFFF */ li $at, -1
-/* 014200 80013600 15810004 */ bne $t4, $at, .L80013614
-/* 014204 80013604 3C018000 */ lui $at, 0x8000
-/* 014208 80013608 15610002 */ bne $t3, $at, .L80013614
-/* 01420C 8001360C 00000000 */ nop
-/* 014210 80013610 0006000D */ break 6
-.L80013614:
-/* 014214 80013614 44982000 */ mtc1 $t8, $f4
-/* 014218 80013618 44994000 */ mtc1 $t9, $f8
-/* 01421C 8001361C 27A40094 */ addiu $a0, $sp, 0x94
-/* 014220 80013620 468021A0 */ cvt.s.w $f6, $f4
-/* 014224 80013624 27A50088 */ addiu $a1, $sp, 0x88
-/* 014228 80013628 468042A0 */ cvt.s.w $f10, $f8
-/* 01422C 8001362C E7A60088 */ swc1 $f6, 0x88($sp)
-/* 014230 80013630 E7AA008C */ swc1 $f10, 0x8c($sp)
-/* 014234 80013634 84480002 */ lh $t0, 2($v0)
-/* 014238 80013638 44888000 */ mtc1 $t0, $f16
-/* 01423C 8001363C 00000000 */ nop
-/* 014240 80013640 468084A0 */ cvt.s.w $f18, $f16
-/* 014244 80013644 0C0017F4 */ jal func_80005FD0
-/* 014248 80013648 E7B20090 */ swc1 $f18, 0x90($sp)
-/* 01424C 8001364C 86090024 */ lh $t1, 0x24($s0)
-/* 014250 80013650 00492823 */ subu $a1, $v0, $t1
-/* 014254 80013654 00051C00 */ sll $v1, $a1, 0x10
-/* 014258 80013658 00052400 */ sll $a0, $a1, 0x10
-/* 01425C 8001365C 00035403 */ sra $t2, $v1, 0x10
-/* 014260 80013660 00045C03 */ sra $t3, $a0, 0x10
-/* 014264 80013664 05610004 */ bgez $t3, .L80013678
-/* 014268 80013668 01401825 */ move $v1, $t2
-/* 01426C 8001366C 000B1823 */ negu $v1, $t3
-/* 014270 80013670 00036400 */ sll $t4, $v1, 0x10
-/* 014274 80013674 000C1C03 */ sra $v1, $t4, 0x10
-.L80013678:
-/* 014278 80013678 28611771 */ slti $at, $v1, 0x1771
-/* 01427C 8001367C 54200014 */ bnel $at, $zero, .L800136D0
-/* 014280 80013680 C6120020 */ lwc1 $f18, 0x20($s0)
-/* 014284 80013684 C6040020 */ lwc1 $f4, 0x20($s0)
-/* 014288 80013688 3C01800F */ lui $at, %hi(D_800ED140)
-/* 01428C 8001368C D426D140 */ ldc1 $f6, %lo(D_800ED140)($at)
-/* 014290 80013690 46002021 */ cvt.d.s $f0, $f4
-/* 014294 80013694 3C01800F */ lui $at, %hi(D_800ED148)
-/* 014298 80013698 4620303C */ c.lt.d $f6, $f0
-/* 01429C 8001369C 00000000 */ nop
-/* 0142A0 800136A0 45020006 */ bc1fl .L800136BC
-/* 0142A4 800136A4 2861003D */ slti $at, $v1, 0x3d
-/* 0142A8 800136A8 D428D148 */ ldc1 $f8, %lo(D_800ED148)($at)
-/* 0142AC 800136AC 46280281 */ sub.d $f10, $f0, $f8
-/* 0142B0 800136B0 46205420 */ cvt.s.d $f16, $f10
-/* 0142B4 800136B4 E6100020 */ swc1 $f16, 0x20($s0)
-/* 0142B8 800136B8 2861003D */ slti $at, $v1, 0x3d
-.L800136BC:
-/* 0142BC 800136BC 54200016 */ bnel $at, $zero, .L80013718
-/* 0142C0 800136C0 34018000 */ li $at, 32768
-/* 0142C4 800136C4 10000013 */ b .L80013714
-/* 0142C8 800136C8 2403003C */ li $v1, 60
-/* 0142CC 800136CC C6120020 */ lwc1 $f18, 0x20($s0)
-.L800136D0:
-/* 0142D0 800136D0 3C014000 */ li $at, 0x40000000 # 2.000000
-/* 0142D4 800136D4 44812800 */ mtc1 $at, $f5
-/* 0142D8 800136D8 44802000 */ mtc1 $zero, $f4
-/* 0142DC 800136DC 46009021 */ cvt.d.s $f0, $f18
-/* 0142E0 800136E0 3C01800F */ lui $at, %hi(D_800ED150)
-/* 0142E4 800136E4 4624003C */ c.lt.d $f0, $f4
-/* 0142E8 800136E8 00000000 */ nop
-/* 0142EC 800136EC 45020006 */ bc1fl .L80013708
-/* 0142F0 800136F0 2861001F */ slti $at, $v1, 0x1f
-/* 0142F4 800136F4 D426D150 */ ldc1 $f6, %lo(D_800ED150)($at)
-/* 0142F8 800136F8 46260200 */ add.d $f8, $f0, $f6
-/* 0142FC 800136FC 462042A0 */ cvt.s.d $f10, $f8
-/* 014300 80013700 E60A0020 */ swc1 $f10, 0x20($s0)
-/* 014304 80013704 2861001F */ slti $at, $v1, 0x1f
-.L80013708:
-/* 014308 80013708 54200003 */ bnel $at, $zero, .L80013718
-/* 01430C 8001370C 34018000 */ li $at, 32768
-/* 014310 80013710 2403001E */ li $v1, 30
-.L80013714:
-/* 014314 80013714 34018000 */ li $at, 32768
-.L80013718:
-/* 014318 80013718 00A1082A */ slt $at, $a1, $at
-/* 01431C 8001371C 14200005 */ bnez $at, .L80013734
-/* 014320 80013720 00000000 */ nop
-/* 014324 80013724 860E0024 */ lh $t6, 0x24($s0)
-/* 014328 80013728 01C37823 */ subu $t7, $t6, $v1
-/* 01432C 8001372C 10000012 */ b .L80013778
-/* 014330 80013730 A60F0024 */ sh $t7, 0x24($s0)
-.L80013734:
-/* 014334 80013734 18A00005 */ blez $a1, .L8001374C
-/* 014338 80013738 28A18001 */ slti $at, $a1, -0x7fff
-/* 01433C 8001373C 86180024 */ lh $t8, 0x24($s0)
-/* 014340 80013740 0303C821 */ addu $t9, $t8, $v1
-/* 014344 80013744 1000000C */ b .L80013778
-/* 014348 80013748 A6190024 */ sh $t9, 0x24($s0)
-.L8001374C:
-/* 01434C 8001374C 10200005 */ beqz $at, .L80013764
-/* 014350 80013750 00000000 */ nop
-/* 014354 80013754 86080024 */ lh $t0, 0x24($s0)
-/* 014358 80013758 01034821 */ addu $t1, $t0, $v1
-/* 01435C 8001375C 10000006 */ b .L80013778
-/* 014360 80013760 A6090024 */ sh $t1, 0x24($s0)
-.L80013764:
-/* 014364 80013764 04A30005 */ bgezl $a1, .L8001377C
-/* 014368 80013768 C6000004 */ lwc1 $f0, 4($s0)
-/* 01436C 8001376C 860A0024 */ lh $t2, 0x24($s0)
-/* 014370 80013770 01435823 */ subu $t3, $t2, $v1
-/* 014374 80013774 A60B0024 */ sh $t3, 0x24($s0)
-.L80013778:
-/* 014378 80013778 C6000004 */ lwc1 $f0, 4($s0)
-.L8001377C:
-/* 01437C 8001377C C6120008 */ lwc1 $f18, 8($s0)
-/* 014380 80013780 C606000C */ lwc1 $f6, 0xc($s0)
-/* 014384 80013784 860C001E */ lh $t4, 0x1e($s0)
-/* 014388 80013788 461A0401 */ sub.s $f16, $f0, $f26
-/* 01438C 8001378C 3C0E8016 */ lui $t6, %hi(gActorList) # $t6, 0x8016
-/* 014390 80013790 000C68C0 */ sll $t5, $t4, 3
-/* 014394 80013794 461C9101 */ sub.s $f4, $f18, $f28
-/* 014398 80013798 01AC6823 */ subu $t5, $t5, $t4
-/* 01439C 8001379C 000D6900 */ sll $t5, $t5, 4
-/* 0143A0 800137A0 461E3201 */ sub.s $f8, $f6, $f30
-/* 0143A4 800137A4 25CEF9B8 */ addiu $t6, %lo(gActorList) # addiu $t6, $t6, -0x648
-/* 0143A8 800137A8 E6100010 */ swc1 $f16, 0x10($s0)
-/* 0143AC 800137AC E6040014 */ swc1 $f4, 0x14($s0)
-/* 0143B0 800137B0 E6080018 */ swc1 $f8, 0x18($s0)
-/* 0143B4 800137B4 01AE1021 */ addu $v0, $t5, $t6
-/* 0143B8 800137B8 E4400018 */ swc1 $f0, 0x18($v0)
-/* 0143BC 800137BC C60A0008 */ lwc1 $f10, 8($s0)
-/* 0143C0 800137C0 3C0F800E */ lui $t7, %hi(gIsMirrorMode)
-/* 0143C4 800137C4 E44A001C */ swc1 $f10, 0x1c($v0)
-/* 0143C8 800137C8 C610000C */ lwc1 $f16, 0xc($s0)
-/* 0143CC 800137CC E4500020 */ swc1 $f16, 0x20($v0)
-/* 0143D0 800137D0 8DEFC604 */ lw $t7, %lo(gIsMirrorMode)($t7)
-/* 0143D4 800137D4 51E00006 */ beql $t7, $zero, .L800137F0
-/* 0143D8 800137D8 86080024 */ lh $t0, 0x24($s0)
-/* 0143DC 800137DC 86180024 */ lh $t8, 0x24($s0)
-/* 0143E0 800137E0 0018C823 */ negu $t9, $t8
-/* 0143E4 800137E4 10000003 */ b .L800137F4
-/* 0143E8 800137E8 A4590012 */ sh $t9, 0x12($v0)
-/* 0143EC 800137EC 86080024 */ lh $t0, 0x24($s0)
-.L800137F0:
-/* 0143F0 800137F0 A4480012 */ sh $t0, 0x12($v0)
-.L800137F4:
-/* 0143F4 800137F4 C6120010 */ lwc1 $f18, 0x10($s0)
-/* 0143F8 800137F8 E4520024 */ swc1 $f18, 0x24($v0)
-/* 0143FC 800137FC C6040014 */ lwc1 $f4, 0x14($s0)
-/* 014400 80013800 E4440028 */ swc1 $f4, 0x28($v0)
-/* 014404 80013804 C6060018 */ lwc1 $f6, 0x18($s0)
-/* 014408 80013808 E446002C */ swc1 $f6, 0x2c($v0)
-.L8001380C:
-/* 01440C 8001380C 26730001 */ addiu $s3, $s3, 1
-/* 014410 80013810 1675FF0B */ bne $s3, $s5, .L80013440
-/* 014414 80013814 2610002C */ addiu $s0, $s0, 0x2c
-/* 014418 80013818 8FBF005C */ lw $ra, 0x5c($sp)
-/* 01441C 8001381C D7B40010 */ ldc1 $f20, 0x10($sp)
-/* 014420 80013820 D7B60018 */ ldc1 $f22, 0x18($sp)
-/* 014424 80013824 D7B80020 */ ldc1 $f24, 0x20($sp)
-/* 014428 80013828 D7BA0028 */ ldc1 $f26, 0x28($sp)
-/* 01442C 8001382C D7BC0030 */ ldc1 $f28, 0x30($sp)
-/* 014430 80013830 D7BE0038 */ ldc1 $f30, 0x38($sp)
-/* 014434 80013834 8FB00044 */ lw $s0, 0x44($sp)
-/* 014438 80013838 8FB10048 */ lw $s1, 0x48($sp)
-/* 01443C 8001383C 8FB2004C */ lw $s2, 0x4c($sp)
-/* 014440 80013840 8FB30050 */ lw $s3, 0x50($sp)
-/* 014444 80013844 8FB40054 */ lw $s4, 0x54($sp)
-/* 014448 80013848 8FB50058 */ lw $s5, 0x58($sp)
-/* 01444C 8001384C 03E00008 */ jr $ra
-/* 014450 80013850 27BD00C8 */ addiu $sp, $sp, 0xc8
diff --git a/asm/non_matchings/code_80005FD0/func_80013F7C.s b/asm/non_matchings/code_80005FD0/func_80013F7C.s
deleted file mode 100644
index 110b75710..000000000
--- a/asm/non_matchings/code_80005FD0/func_80013F7C.s
+++ /dev/null
@@ -1,441 +0,0 @@
-.section .late_rodata
-
-glabel D_800ED188
-.double -300.0
-
-glabel D_800ED190
-.double 300.0
-
-glabel D_800ED198
-.double -300.0
-
-glabel D_800ED1A0
-.double 300.0
-
-.section .text
-
-glabel func_80013F7C
-/* 014B7C 80013F7C 27BDFF28 */ addiu $sp, $sp, -0xd8
-/* 014B80 80013F80 AFB70074 */ sw $s7, 0x74($sp)
-/* 014B84 80013F84 0004B840 */ sll $s7, $a0, 1
-/* 014B88 80013F88 3C0F8016 */ lui $t7, %hi(D_801631E0) # 0x8016
-/* 014B8C 80013F8C 01F77821 */ addu $t7, $t7, $s7
-/* 014B90 80013F90 95EF31E0 */ lhu $t7, %lo(D_801631E0)($t7) # 0x31e0($t7)
-/* 014B94 80013F94 AFB5006C */ sw $s5, 0x6c($sp)
-/* 014B98 80013F98 24150001 */ li $s5, 1
-/* 014B9C 80013F9C AFB40068 */ sw $s4, 0x68($sp)
-/* 014BA0 80013FA0 AFB00058 */ sw $s0, 0x58($sp)
-/* 014BA4 80013FA4 00C08025 */ move $s0, $a2
-/* 014BA8 80013FA8 00A0A025 */ move $s4, $a1
-/* 014BAC 80013FAC AFBF007C */ sw $ra, 0x7c($sp)
-/* 014BB0 80013FB0 AFBE0078 */ sw $fp, 0x78($sp)
-/* 014BB4 80013FB4 AFB60070 */ sw $s6, 0x70($sp)
-/* 014BB8 80013FB8 AFB30064 */ sw $s3, 0x64($sp)
-/* 014BBC 80013FBC AFB20060 */ sw $s2, 0x60($sp)
-/* 014BC0 80013FC0 AFB1005C */ sw $s1, 0x5c($sp)
-/* 014BC4 80013FC4 F7BE0050 */ sdc1 $f30, 0x50($sp)
-/* 014BC8 80013FC8 F7BC0048 */ sdc1 $f28, 0x48($sp)
-/* 014BCC 80013FCC F7BA0040 */ sdc1 $f26, 0x40($sp)
-/* 014BD0 80013FD0 F7B80038 */ sdc1 $f24, 0x38($sp)
-/* 014BD4 80013FD4 F7B60030 */ sdc1 $f22, 0x30($sp)
-/* 014BD8 80013FD8 F7B40028 */ sdc1 $f20, 0x28($sp)
-/* 014BDC 80013FDC AFA400D8 */ sw $a0, 0xd8($sp)
-/* 014BE0 80013FE0 16AF0007 */ bne $s5, $t7, .L80014000
-/* 014BE4 80013FE4 AFA700E4 */ sw $a3, 0xe4($sp)
-/* 014BE8 80013FE8 94A20000 */ lhu $v0, ($a1)
-/* 014BEC 80013FEC 30584000 */ andi $t8, $v0, 0x4000
-/* 014BF0 80013FF0 1300015B */ beqz $t8, .L80014560
-/* 014BF4 80013FF4 30591000 */ andi $t9, $v0, 0x1000
-/* 014BF8 80013FF8 5720015A */ bnel $t9, $zero, .L80014564
-/* 014BFC 80013FFC 8FBF007C */ lw $ra, 0x7c($sp)
-.L80014000:
-/* 014C00 80014000 8E8800BC */ lw $t0, 0xbc($s4)
-/* 014C04 80014004 000849C0 */ sll $t1, $t0, 7
-/* 014C08 80014008 05220156 */ bltzl $t1, .L80014564
-/* 014C0C 8001400C 8FBF007C */ lw $ra, 0x7c($sp)
-/* 014C10 80014010 C6840014 */ lwc1 $f4, 0x14($s4)
-/* 014C14 80014014 8FAA00EC */ lw $t2, 0xec($sp)
-/* 014C18 80014018 3C168016 */ lui $s6, %hi(D_801631C8) # $s6, 0x8016
-/* 014C1C 8001401C E7A400C4 */ swc1 $f4, 0xc4($sp)
-/* 014C20 80014020 C6860018 */ lwc1 $f6, 0x18($s4)
-/* 014C24 80014024 26D631C8 */ addiu $s6, %lo(D_801631C8) # addiu $s6, $s6, 0x31c8
-/* 014C28 80014028 0000F025 */ move $fp, $zero
-/* 014C2C 8001402C E7A600C0 */ swc1 $f6, 0xc0($sp)
-/* 014C30 80014030 C688001C */ lwc1 $f8, 0x1c($s4)
-/* 014C34 80014034 3C01C059 */ li $at, 0xC0590000 # -3.390625
-/* 014C38 80014038 19400149 */ blez $t2, .L80014560
-/* 014C3C 8001403C E7A800BC */ swc1 $f8, 0xbc($sp)
-/* 014C40 80014040 4481F800 */ mtc1 $at, $f31
-/* 014C44 80014044 3C014034 */ li $at, 0x40340000 # 2.812500
-/* 014C48 80014048 4481E800 */ mtc1 $at, $f29
-/* 014C4C 8001404C 3C01C034 */ li $at, 0xC0340000 # -2.812500
-/* 014C50 80014050 4481D800 */ mtc1 $at, $f27
-/* 014C54 80014054 4480F000 */ mtc1 $zero, $f30
-/* 014C58 80014058 4480E000 */ mtc1 $zero, $f28
-/* 014C5C 8001405C 4480D000 */ mtc1 $zero, $f26
-/* 014C60 80014060 8FB300F0 */ lw $s3, 0xf0($sp)
-/* 014C64 80014064 C60C0004 */ lwc1 $f12, 4($s0)
-.L80014068:
-/* 014C68 80014068 C7AA00C4 */ lwc1 $f10, 0xc4($sp)
-/* 014C6C 8001406C C7B000C0 */ lwc1 $f16, 0xc0($sp)
-/* 014C70 80014070 C6120008 */ lwc1 $f18, 8($s0)
-/* 014C74 80014074 460C5001 */ sub.s $f0, $f10, $f12
-/* 014C78 80014078 C60E000C */ lwc1 $f14, 0xc($s0)
-/* 014C7C 8001407C C7A400BC */ lwc1 $f4, 0xbc($sp)
-/* 014C80 80014080 3C014059 */ li $at, 0x40590000 # 3.390625
-/* 014C84 80014084 46000521 */ cvt.d.s $f20, $f0
-/* 014C88 80014088 46128581 */ sub.s $f22, $f16, $f18
-/* 014C8C 8001408C 4634F03C */ c.lt.d $f30, $f20
-/* 014C90 80014090 460E2601 */ sub.s $f24, $f4, $f14
-/* 014C94 80014094 4502002D */ bc1fl .L8001414C
-/* 014C98 80014098 96820000 */ lhu $v0, ($s4)
-/* 014C9C 8001409C 44813800 */ mtc1 $at, $f7
-/* 014CA0 800140A0 44803000 */ mtc1 $zero, $f6
-/* 014CA4 800140A4 00000000 */ nop
-/* 014CA8 800140A8 4626A03C */ c.lt.d $f20, $f6
-/* 014CAC 800140AC 00000000 */ nop
-/* 014CB0 800140B0 45020026 */ bc1fl .L8001414C
-/* 014CB4 800140B4 96820000 */ lhu $v0, ($s4)
-/* 014CB8 800140B8 4600B021 */ cvt.d.s $f0, $f22
-/* 014CBC 800140BC 4620D03C */ c.lt.d $f26, $f0
-/* 014CC0 800140C0 00000000 */ nop
-/* 014CC4 800140C4 45020021 */ bc1fl .L8001414C
-/* 014CC8 800140C8 96820000 */ lhu $v0, ($s4)
-/* 014CCC 800140CC 463C003C */ c.lt.d $f0, $f28
-/* 014CD0 800140D0 00000000 */ nop
-/* 014CD4 800140D4 4502001D */ bc1fl .L8001414C
-/* 014CD8 800140D8 96820000 */ lhu $v0, ($s4)
-/* 014CDC 800140DC 4600C021 */ cvt.d.s $f0, $f24
-/* 014CE0 800140E0 3C014059 */ li $at, 0x40590000 # 3.390625
-/* 014CE4 800140E4 4620F03C */ c.lt.d $f30, $f0
-/* 014CE8 800140E8 00000000 */ nop
-/* 014CEC 800140EC 45020017 */ bc1fl .L8001414C
-/* 014CF0 800140F0 96820000 */ lhu $v0, ($s4)
-/* 014CF4 800140F4 44814800 */ mtc1 $at, $f9
-/* 014CF8 800140F8 44804000 */ mtc1 $zero, $f8
-/* 014CFC 800140FC C7B000E4 */ lwc1 $f16, 0xe4($sp)
-/* 014D00 80014100 4628003C */ c.lt.d $f0, $f8
-/* 014D04 80014104 00000000 */ nop
-/* 014D08 80014108 45020010 */ bc1fl .L8001414C
-/* 014D0C 8001410C 96820000 */ lhu $v0, ($s4)
-/* 014D10 80014110 8E060010 */ lw $a2, 0x10($s0)
-/* 014D14 80014114 8E070018 */ lw $a3, 0x18($s0)
-/* 014D18 80014118 C7B200E8 */ lwc1 $f18, 0xe8($sp)
-/* 014D1C 8001411C E7A4001C */ swc1 $f4, 0x1c($sp)
-/* 014D20 80014120 E7AA0018 */ swc1 $f10, 0x18($sp)
-/* 014D24 80014124 E7B00010 */ swc1 $f16, 0x10($sp)
-/* 014D28 80014128 0C001806 */ jal func_80006018
-/* 014D2C 8001412C E7B20014 */ swc1 $f18, 0x14($sp)
-/* 014D30 80014130 54550006 */ bnel $v0, $s5, .L8001414C
-/* 014D34 80014134 96820000 */ lhu $v0, ($s4)
-/* 014D38 80014138 8E8B000C */ lw $t3, 0xc($s4)
-/* 014D3C 8001413C 3C010040 */ lui $at, 0x40
-/* 014D40 80014140 01616025 */ or $t4, $t3, $at
-/* 014D44 80014144 AE8C000C */ sw $t4, 0xc($s4)
-/* 014D48 80014148 96820000 */ lhu $v0, ($s4)
-.L8001414C:
-/* 014D4C 8001414C 304D4000 */ andi $t5, $v0, 0x4000
-/* 014D50 80014150 11A000FE */ beqz $t5, .L8001454C
-/* 014D54 80014154 304E1000 */ andi $t6, $v0, 0x1000
-/* 014D58 80014158 15C000FC */ bnez $t6, .L8001454C
-/* 014D5C 8001415C 3C01800F */ lui $at, %hi(D_800ED188)
-/* 014D60 80014160 D426D188 */ ldc1 $f6, %lo(D_800ED188)($at)
-/* 014D64 80014164 8FAF00D8 */ lw $t7, 0xd8($sp)
-/* 014D68 80014168 24180001 */ li $t8, 1
-/* 014D6C 8001416C 4634303C */ c.lt.d $f6, $f20
-/* 014D70 80014170 3C01800F */ lui $at, %hi(D_800ED190)
-/* 014D74 80014174 01F89004 */ sllv $s2, $t8, $t7
-/* 014D78 80014178 4502002D */ bc1fl .L80014230
-/* 014D7C 8001417C 82020030 */ lb $v0, 0x30($s0)
-/* 014D80 80014180 D428D190 */ ldc1 $f8, %lo(D_800ED190)($at)
-/* 014D84 80014184 4628A03C */ c.lt.d $f20, $f8
-/* 014D88 80014188 00000000 */ nop
-/* 014D8C 8001418C 45020028 */ bc1fl .L80014230
-/* 014D90 80014190 82020030 */ lb $v0, 0x30($s0)
-/* 014D94 80014194 4600B021 */ cvt.d.s $f0, $f22
-/* 014D98 80014198 4620D03C */ c.lt.d $f26, $f0
-/* 014D9C 8001419C 00000000 */ nop
-/* 014DA0 800141A0 45020023 */ bc1fl .L80014230
-/* 014DA4 800141A4 82020030 */ lb $v0, 0x30($s0)
-/* 014DA8 800141A8 463C003C */ c.lt.d $f0, $f28
-/* 014DAC 800141AC 3C01800F */ lui $at, %hi(D_800ED198)
-/* 014DB0 800141B0 4502001F */ bc1fl .L80014230
-/* 014DB4 800141B4 82020030 */ lb $v0, 0x30($s0)
-/* 014DB8 800141B8 D430D198 */ ldc1 $f16, %lo(D_800ED198)($at)
-/* 014DBC 800141BC 4600C021 */ cvt.d.s $f0, $f24
-/* 014DC0 800141C0 3C01800F */ lui $at, %hi(D_800ED1A0)
-/* 014DC4 800141C4 4620803C */ c.lt.d $f16, $f0
-/* 014DC8 800141C8 00000000 */ nop
-/* 014DCC 800141CC 45020018 */ bc1fl .L80014230
-/* 014DD0 800141D0 82020030 */ lb $v0, 0x30($s0)
-/* 014DD4 800141D4 D432D1A0 */ ldc1 $f18, %lo(D_800ED1A0)($at)
-/* 014DD8 800141D8 4632003C */ c.lt.d $f0, $f18
-/* 014DDC 800141DC 00000000 */ nop
-/* 014DE0 800141E0 45020013 */ bc1fl .L80014230
-/* 014DE4 800141E4 82020030 */ lb $v0, 0x30($s0)
-/* 014DE8 800141E8 86C20000 */ lh $v0, ($s6)
-/* 014DEC 800141EC 5840001E */ blezl $v0, .L80014268
-/* 014DF0 800141F0 3C01C069 */ lui $at, 0xc069
-/* 014DF4 800141F4 82190030 */ lb $t9, 0x30($s0)
-/* 014DF8 800141F8 2448FFFF */ addiu $t0, $v0, -1
-/* 014DFC 800141FC 26040004 */ addiu $a0, $s0, 4
-/* 014E00 80014200 57200019 */ bnel $t9, $zero, .L80014268
-/* 014E04 80014204 3C01C069 */ lui $at, 0xc069
-/* 014E08 80014208 A6C80000 */ sh $t0, ($s6)
-/* 014E0C 8001420C 82090030 */ lb $t1, 0x30($s0)
-/* 014E10 80014210 26050010 */ addiu $a1, $s0, 0x10
-/* 014E14 80014214 02603025 */ move $a2, $s3
-/* 014E18 80014218 01325025 */ or $t2, $t1, $s2
-/* 014E1C 8001421C 0C032760 */ jal func_800C9D80
-/* 014E20 80014220 A20A0030 */ sb $t2, 0x30($s0)
-/* 014E24 80014224 10000010 */ b .L80014268
-/* 014E28 80014228 3C01C069 */ lui $at, 0xc069
-/* 014E2C 8001422C 82020030 */ lb $v0, 0x30($s0)
-.L80014230:
-/* 014E30 80014230 02405827 */ not $t3, $s2
-/* 014E34 80014234 1040000B */ beqz $v0, .L80014264
-/* 014E38 80014238 004B6024 */ and $t4, $v0, $t3
-/* 014E3C 8001423C A20C0030 */ sb $t4, 0x30($s0)
-/* 014E40 80014240 820D0030 */ lb $t5, 0x30($s0)
-/* 014E44 80014244 55A00008 */ bnel $t5, $zero, .L80014268
-/* 014E48 80014248 3C01C069 */ lui $at, 0xc069
-/* 014E4C 8001424C 86CE0000 */ lh $t6, ($s6)
-/* 014E50 80014250 26040004 */ addiu $a0, $s0, 4
-/* 014E54 80014254 02602825 */ move $a1, $s3
-/* 014E58 80014258 25D80001 */ addiu $t8, $t6, 1
-/* 014E5C 8001425C 0C0327BD */ jal func_800C9EF4
-/* 014E60 80014260 A6D80000 */ sh $t8, ($s6)
-.L80014264:
-/* 014E64 80014264 3C01C069 */ li $at, 0xC0690000 # -3.640625
-.L80014268:
-/* 014E68 80014268 44815800 */ mtc1 $at, $f11
-/* 014E6C 8001426C 44805000 */ mtc1 $zero, $f10
-/* 014E70 80014270 3C014069 */ li $at, 0x40690000 # 3.640625
-/* 014E74 80014274 4634503C */ c.lt.d $f10, $f20
-/* 014E78 80014278 00000000 */ nop
-/* 014E7C 8001427C 450200AE */ bc1fl .L80014538
-/* 014E80 80014280 82020031 */ lb $v0, 0x31($s0)
-/* 014E84 80014284 44812800 */ mtc1 $at, $f5
-/* 014E88 80014288 44802000 */ mtc1 $zero, $f4
-/* 014E8C 8001428C 00000000 */ nop
-/* 014E90 80014290 4624A03C */ c.lt.d $f20, $f4
-/* 014E94 80014294 00000000 */ nop
-/* 014E98 80014298 450200A7 */ bc1fl .L80014538
-/* 014E9C 8001429C 82020031 */ lb $v0, 0x31($s0)
-/* 014EA0 800142A0 4600B021 */ cvt.d.s $f0, $f22
-/* 014EA4 800142A4 4620D03C */ c.lt.d $f26, $f0
-/* 014EA8 800142A8 00000000 */ nop
-/* 014EAC 800142AC 450200A2 */ bc1fl .L80014538
-/* 014EB0 800142B0 82020031 */ lb $v0, 0x31($s0)
-/* 014EB4 800142B4 463C003C */ c.lt.d $f0, $f28
-/* 014EB8 800142B8 3C01C069 */ li $at, 0xC0690000 # -3.640625
-/* 014EBC 800142BC 4502009E */ bc1fl .L80014538
-/* 014EC0 800142C0 82020031 */ lb $v0, 0x31($s0)
-/* 014EC4 800142C4 44813800 */ mtc1 $at, $f7
-/* 014EC8 800142C8 44803000 */ mtc1 $zero, $f6
-/* 014ECC 800142CC 4600C021 */ cvt.d.s $f0, $f24
-/* 014ED0 800142D0 3C014069 */ li $at, 0x40690000 # 3.640625
-/* 014ED4 800142D4 4620303C */ c.lt.d $f6, $f0
-/* 014ED8 800142D8 00000000 */ nop
-/* 014EDC 800142DC 45020096 */ bc1fl .L80014538
-/* 014EE0 800142E0 82020031 */ lb $v0, 0x31($s0)
-/* 014EE4 800142E4 44814800 */ mtc1 $at, $f9
-/* 014EE8 800142E8 44804000 */ mtc1 $zero, $f8
-/* 014EEC 800142EC 00000000 */ nop
-/* 014EF0 800142F0 4628003C */ c.lt.d $f0, $f8
-/* 014EF4 800142F4 00000000 */ nop
-/* 014EF8 800142F8 4502008F */ bc1fl .L80014538
-/* 014EFC 800142FC 82020031 */ lb $v0, 0x31($s0)
-/* 014F00 80014300 820F0031 */ lb $t7, 0x31($s0)
-/* 014F04 80014304 3C038016 */ lui $v1, %hi(D_8016347A) # $v1, 0x8016
-/* 014F08 80014308 01F2C824 */ and $t9, $t7, $s2
-/* 014F0C 8001430C 57200090 */ bnel $t9, $zero, .L80014550
-/* 014F10 80014310 8FA800EC */ lw $t0, 0xec($sp)
-/* 014F14 80014314 8463347A */ lh $v1, %lo(D_8016347A)($v1)
-/* 014F18 80014318 3C028016 */ lui $v0, %hi(gWaypointCountByPathIndex) # $v0, 0x8016
-/* 014F1C 8001431C 00008825 */ move $s1, $zero
-/* 014F20 80014320 10600005 */ beqz $v1, .L80014338
-/* 014F24 80014324 944245C8 */ lhu $v0, %lo(gWaypointCountByPathIndex)($v0)
-/* 014F28 80014328 10750022 */ beq $v1, $s5, .L800143B4
-/* 014F2C 8001432C 3C058016 */ lui $a1, %hi(gNearestWaypointByPlayerId) # 0x8016
-/* 014F30 80014330 1000003F */ b .L80014430
-/* 014F34 80014334 00000000 */ nop
-.L80014338:
-/* 014F38 80014338 3C088016 */ lui $t0, %hi(D_80163270) # $t0, 0x8016
-/* 014F3C 8001433C 25083270 */ addiu $t0, %lo(D_80163270) # addiu $t0, $t0, 0x3270
-/* 014F40 80014340 3C058016 */ lui $a1, %hi(gNearestWaypointByPlayerId) # 0x8016
-/* 014F44 80014344 00B72821 */ addu $a1, $a1, $s7
-/* 014F48 80014348 02E84821 */ addu $t1, $s7, $t0
-/* 014F4C 8001434C 9604001C */ lhu $a0, 0x1c($s0)
-/* 014F50 80014350 AFA9009C */ sw $t1, 0x9c($sp)
-/* 014F54 80014354 AFA20010 */ sw $v0, 0x10($sp)
-/* 014F58 80014358 94A54438 */ lhu $a1, %lo(gNearestWaypointByPlayerId)($a1) # 0x4438($a1)
-/* 014F5C 8001435C 2406000A */ li $a2, 10
-/* 014F60 80014360 0C001EFE */ jal func_80007BF8
-/* 014F64 80014364 00003825 */ move $a3, $zero
-/* 014F68 80014368 8FAA009C */ lw $t2, 0x9c($sp)
-/* 014F6C 8001436C 95430000 */ lhu $v1, ($t2)
-/* 014F70 80014370 1460000A */ bnez $v1, .L8001439C
-/* 014F74 80014374 00000000 */ nop
-/* 014F78 80014378 18400008 */ blez $v0, .L8001439C
-/* 014F7C 8001437C 00000000 */ nop
-/* 014F80 80014380 C6900094 */ lwc1 $f16, 0x94($s4)
-/* 014F84 80014384 C6120020 */ lwc1 $f18, 0x20($s0)
-/* 014F88 80014388 4612803C */ c.lt.s $f16, $f18
-/* 014F8C 8001438C 00000000 */ nop
-/* 014F90 80014390 45000002 */ bc1f .L8001439C
-/* 014F94 80014394 00000000 */ nop
-/* 014F98 80014398 02A08825 */ move $s1, $s5
-.L8001439C:
-/* 014F9C 8001439C 16A30024 */ bne $s5, $v1, .L80014430
-/* 014FA0 800143A0 00000000 */ nop
-/* 014FA4 800143A4 18400022 */ blez $v0, .L80014430
-/* 014FA8 800143A8 00000000 */ nop
-/* 014FAC 800143AC 10000020 */ b .L80014430
-/* 014FB0 800143B0 02A08825 */ move $s1, $s5
-.L800143B4:
-/* 014FB4 800143B4 9604001C */ lhu $a0, 0x1c($s0)
-/* 014FB8 800143B8 00B72821 */ addu $a1, $a1, $s7
-/* 014FBC 800143BC 94A54438 */ lhu $a1, %lo(gNearestWaypointByPlayerId)($a1) # 0x4438($a1)
-/* 014FC0 800143C0 AFA20010 */ sw $v0, 0x10($sp)
-/* 014FC4 800143C4 00003025 */ move $a2, $zero
-/* 014FC8 800143C8 0C001EFE */ jal func_80007BF8
-/* 014FCC 800143CC 2407000A */ li $a3, 10
-/* 014FD0 800143D0 18400017 */ blez $v0, .L80014430
-/* 014FD4 800143D4 00000000 */ nop
-/* 014FD8 800143D8 0C0ADF8D */ jal random_int
-/* 014FDC 800143DC 24040002 */ li $a0, 2
-/* 014FE0 800143E0 14400010 */ bnez $v0, .L80014424
-/* 014FE4 800143E4 3C038016 */ lui $v1, %hi(D_80163270) # 0x8016
-/* 014FE8 800143E8 00771821 */ addu $v1, $v1, $s7
-/* 014FEC 800143EC 94633270 */ lhu $v1, %lo(D_80163270)($v1) # 0x3270($v1)
-/* 014FF0 800143F0 14600002 */ bnez $v1, .L800143FC
-/* 014FF4 800143F4 00000000 */ nop
-/* 014FF8 800143F8 02A08825 */ move $s1, $s5
-.L800143FC:
-/* 014FFC 800143FC 16A3000C */ bne $s5, $v1, .L80014430
-/* 015000 80014400 00000000 */ nop
-/* 015004 80014404 C68A0094 */ lwc1 $f10, 0x94($s4)
-/* 015008 80014408 C6040020 */ lwc1 $f4, 0x20($s0)
-/* 01500C 8001440C 4604503C */ c.lt.s $f10, $f4
-/* 015010 80014410 00000000 */ nop
-/* 015014 80014414 45000006 */ bc1f .L80014430
-/* 015018 80014418 00000000 */ nop
-/* 01501C 8001441C 10000004 */ b .L80014430
-/* 015020 80014420 02A08825 */ move $s1, $s5
-.L80014424:
-/* 015024 80014424 820B0031 */ lb $t3, 0x31($s0)
-/* 015028 80014428 01726025 */ or $t4, $t3, $s2
-/* 01502C 8001442C A20C0031 */ sb $t4, 0x31($s0)
-.L80014430:
-/* 015030 80014430 16350046 */ bne $s1, $s5, .L8001454C
-/* 015034 80014434 3C061901 */ lui $a2, (0x1901703B >> 16) # lui $a2, 0x1901
-/* 015038 80014438 3C015101 */ lui $at, (0x51018002 >> 16) # lui $at, 0x5101
-/* 01503C 8001443C 34218002 */ ori $at, (0x51018002 & 0xFFFF) # ori $at, $at, 0x8002
-/* 015040 80014440 260D0010 */ addiu $t5, $s0, 0x10
-/* 015044 80014444 34C6703B */ ori $a2, (0x1901703B & 0xFFFF) # ori $a2, $a2, 0x703b
-/* 015048 80014448 AFAD0084 */ sw $t5, 0x84($sp)
-/* 01504C 8001444C 12610015 */ beq $s3, $at, .L800144A4
-/* 015050 80014450 26110004 */ addiu $s1, $s0, 4
-/* 015054 80014454 3C015101 */ lui $at, (0x51018003 >> 16) # lui $at, 0x5101
-/* 015058 80014458 34218003 */ ori $at, (0x51018003 & 0xFFFF) # ori $at, $at, 0x8003
-/* 01505C 8001445C 1261001B */ beq $s3, $at, .L800144CC
-/* 015060 80014460 3C015101 */ lui $at, (0x51018004 >> 16) # lui $at, 0x5101
-/* 015064 80014464 34218004 */ ori $at, (0x51018004 & 0xFFFF) # ori $at, $at, 0x8004
-/* 015068 80014468 12610022 */ beq $s3, $at, .L800144F4
-/* 01506C 8001446C 3C015101 */ lui $at, (0x51018005 >> 16) # lui $at, 0x5101
-/* 015070 80014470 34218005 */ ori $at, (0x51018005 & 0xFFFF) # ori $at, $at, 0x8005
-/* 015074 80014474 12610003 */ beq $s3, $at, .L80014484
-/* 015078 80014478 24040004 */ li $a0, 4
-/* 01507C 8001447C 10000026 */ b .L80014518
-/* 015080 80014480 82020031 */ lb $v0, 0x31($s0)
-.L80014484:
-/* 015084 80014484 0C0ADF8D */ jal random_int
-/* 015088 80014488 AFA600A8 */ sw $a2, 0xa8($sp)
-/* 01508C 8001448C 14400003 */ bnez $v0, .L8001449C
-/* 015090 80014490 8FA600A8 */ lw $a2, 0xa8($sp)
-/* 015094 80014494 3C061901 */ lui $a2, (0x1901703C >> 16) # lui $a2, 0x1901
-/* 015098 80014498 34C6703C */ ori $a2, (0x1901703C & 0xFFFF) # ori $a2, $a2, 0x703c
-.L8001449C:
-/* 01509C 8001449C 1000001E */ b .L80014518
-/* 0150A0 800144A0 82020031 */ lb $v0, 0x31($s0)
-.L800144A4:
-/* 0150A4 800144A4 0C0ADF8D */ jal random_int
-/* 0150A8 800144A8 24040002 */ li $a0, 2
-/* 0150AC 800144AC 10400004 */ beqz $v0, .L800144C0
-/* 0150B0 800144B0 3C061901 */ lui $a2, 0x1901
-/* 0150B4 800144B4 3C061901 */ lui $a2, (0x1901703E >> 16) # lui $a2, 0x1901
-/* 0150B8 800144B8 10000002 */ b .L800144C4
-/* 0150BC 800144BC 34C6703D */ ori $a2, (0x1901703D & 0xFFFF) # ori $a2, $a2, 0x703d
-.L800144C0:
-/* 0150C0 800144C0 34C6703E */ ori $a2, (0x1901703E & 0xFFFF) # ori $a2, $a2, 0x703e
-.L800144C4:
-/* 0150C4 800144C4 10000014 */ b .L80014518
-/* 0150C8 800144C8 82020031 */ lb $v0, 0x31($s0)
-.L800144CC:
-/* 0150CC 800144CC 0C0ADF8D */ jal random_int
-/* 0150D0 800144D0 24040002 */ li $a0, 2
-/* 0150D4 800144D4 10400004 */ beqz $v0, .L800144E8
-/* 0150D8 800144D8 3C061901 */ lui $a2, 0x1901
-/* 0150DC 800144DC 3C061901 */ lui $a2, (0x19017040 >> 16) # lui $a2, 0x1901
-/* 0150E0 800144E0 10000002 */ b .L800144EC
-/* 0150E4 800144E4 34C6703F */ ori $a2, (0x1901703F & 0xFFFF) # ori $a2, $a2, 0x703f
-.L800144E8:
-/* 0150E8 800144E8 34C67040 */ ori $a2, (0x19017040 & 0xFFFF) # ori $a2, $a2, 0x7040
-.L800144EC:
-/* 0150EC 800144EC 1000000A */ b .L80014518
-/* 0150F0 800144F0 82020031 */ lb $v0, 0x31($s0)
-.L800144F4:
-/* 0150F4 800144F4 0C0ADF8D */ jal random_int
-/* 0150F8 800144F8 24040002 */ li $a0, 2
-/* 0150FC 800144FC 10400004 */ beqz $v0, .L80014510
-/* 015100 80014500 3C061901 */ lui $a2, 0x1901
-/* 015104 80014504 3C061901 */ lui $a2, (0x19017042 >> 16) # lui $a2, 0x1901
-/* 015108 80014508 10000002 */ b .L80014514
-/* 01510C 8001450C 34C67041 */ ori $a2, (0x19017041 & 0xFFFF) # ori $a2, $a2, 0x7041
-.L80014510:
-/* 015110 80014510 34C67042 */ ori $a2, (0x19017042 & 0xFFFF) # ori $a2, $a2, 0x7042
-.L80014514:
-/* 015114 80014514 82020031 */ lb $v0, 0x31($s0)
-.L80014518:
-/* 015118 80014518 00527025 */ or $t6, $v0, $s2
-/* 01511C 8001451C A20E0031 */ sb $t6, 0x31($s0)
-/* 015120 80014520 8FA50084 */ lw $a1, 0x84($sp)
-/* 015124 80014524 0C03262E */ jal func_800C98B8
-/* 015128 80014528 02202025 */ move $a0, $s1
-/* 01512C 8001452C 10000008 */ b .L80014550
-/* 015130 80014530 8FA800EC */ lw $t0, 0xec($sp)
-/* 015134 80014534 82020031 */ lb $v0, 0x31($s0)
-.L80014538:
-/* 015138 80014538 02407827 */ not $t7, $s2
-/* 01513C 8001453C 0052C024 */ and $t8, $v0, $s2
-/* 015140 80014540 13000002 */ beqz $t8, .L8001454C
-/* 015144 80014544 004FC824 */ and $t9, $v0, $t7
-/* 015148 80014548 A2190031 */ sb $t9, 0x31($s0)
-.L8001454C:
-/* 01514C 8001454C 8FA800EC */ lw $t0, 0xec($sp)
-.L80014550:
-/* 015150 80014550 27DE0001 */ addiu $fp, $fp, 1
-/* 015154 80014554 26100034 */ addiu $s0, $s0, 0x34
-/* 015158 80014558 57C8FEC3 */ bnel $fp, $t0, .L80014068
-/* 01515C 8001455C C60C0004 */ lwc1 $f12, 4($s0)
-.L80014560:
-/* 015160 80014560 8FBF007C */ lw $ra, 0x7c($sp)
-.L80014564:
-/* 015164 80014564 D7B40028 */ ldc1 $f20, 0x28($sp)
-/* 015168 80014568 D7B60030 */ ldc1 $f22, 0x30($sp)
-/* 01516C 8001456C D7B80038 */ ldc1 $f24, 0x38($sp)
-/* 015170 80014570 D7BA0040 */ ldc1 $f26, 0x40($sp)
-/* 015174 80014574 D7BC0048 */ ldc1 $f28, 0x48($sp)
-/* 015178 80014578 D7BE0050 */ ldc1 $f30, 0x50($sp)
-/* 01517C 8001457C 8FB00058 */ lw $s0, 0x58($sp)
-/* 015180 80014580 8FB1005C */ lw $s1, 0x5c($sp)
-/* 015184 80014584 8FB20060 */ lw $s2, 0x60($sp)
-/* 015188 80014588 8FB30064 */ lw $s3, 0x64($sp)
-/* 01518C 8001458C 8FB40068 */ lw $s4, 0x68($sp)
-/* 015190 80014590 8FB5006C */ lw $s5, 0x6c($sp)
-/* 015194 80014594 8FB60070 */ lw $s6, 0x70($sp)
-/* 015198 80014598 8FB70074 */ lw $s7, 0x74($sp)
-/* 01519C 8001459C 8FBE0078 */ lw $fp, 0x78($sp)
-/* 0151A0 800145A0 03E00008 */ jr $ra
-/* 0151A4 800145A4 27BD00D8 */ addiu $sp, $sp, 0xd8
diff --git a/asm/non_matchings/code_80005FD0/func_80019DF4.s b/asm/non_matchings/code_80005FD0/func_80019DF4.s
index 2fecc4941..865d02ec3 100644
--- a/asm/non_matchings/code_80005FD0/func_80019DF4.s
+++ b/asm/non_matchings/code_80005FD0/func_80019DF4.s
@@ -1,12 +1,12 @@
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_8016467A) # $t7, 0x8016
-/* 01AA00 80019E00 3C188016 */ lui $t8, %hi(D_8016467C) # $t8, 0x8016
-/* 01AA04 80019E04 3C198016 */ lui $t9, %hi(D_8016467E) # $t9, 0x8016
-/* 01AA08 80019E08 8739467E */ lh $t9, %lo(D_8016467E)($t9)
-/* 01AA0C 80019E0C 8718467C */ lh $t8, %lo(D_8016467C)($t8)
-/* 01AA10 80019E10 85EF467A */ lh $t7, %lo(D_8016467A)($t7)
+/* 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)
diff --git a/include/vehicles.h b/include/vehicles.h
index 398624bc9..394ffc01f 100644
--- a/include/vehicles.h
+++ b/include/vehicles.h
@@ -47,10 +47,10 @@ typedef struct {
/* 0x02 */ // s16 compilerPadding;
/* 0x04 */ Vec3f position; //
/* 0x10 */ Vec3f velocity; //
- /* 0x1C */ s16 waypointIndex; //
+ /* 0x1C */ u16 waypointIndex; //
/* 0x1E */ s16 actorIndex; //
/* 0x20 */ f32 someMultiplier; //
- /* 0x24 */ s16 yRotation; // Only Y rotation is tracked in this struct
+ /* 0x24 */ s16 rotY; // Only Y rotation is tracked in this struct
/* 0x26 */ // s16 compilerPadding2;
/**
* Bit field that tracks whether a given human player is within a certain distance of the boat
@@ -83,7 +83,7 @@ typedef struct {
extern TrainStuff sTrains[];
// This is an array, maybe they intended to have multiple boats at some point in development?
-extern PaddleWheelBoatStuff D_801637C0[];
+extern PaddleWheelBoatStuff gFerries[];
// Lists for different vehicles in Toad's Turnpike
extern VehicleStuff gBoxTruckList[];
diff --git a/src/camera.c b/src/camera.c
index ac771d37d..6cd1c5841 100644
--- a/src/camera.c
+++ b/src/camera.c
@@ -18,17 +18,17 @@
f32 D_800DDB30[] = { 0.4f, 0.6f, 0.275f, 0.3f };
+// Future BSS section, replaces unknown amount of stuff in bss_8001C4D0.s
+// f32 D_80164A30;
+// s32 D_80164A2C;
+// f32 D_8016524C; <- could maybe, maybe be part of spawn_players' bss stuff?
+
Camera cameras[4];
Camera *camera1 = &cameras[0];
Camera *camera2 = &cameras[1];
Camera *camera3 = &cameras[2];
Camera *camera4 = &cameras[3];
-// Future BSS section, replaces unknown amount of stuff in bss_8001C4D0.s
-// f32 D_80164A30;
-// s32 D_80164A2C;
-// f32 D_8016524C; <- could maybe, maybe be part of spawn_players' bss stuff?
-
extern f32 D_80164498[];
extern s16 D_80164678[];
extern f32 D_801649D8[]; // f32[4]
diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c
index ca3819cef..05f527102 100644
--- a/src/code_80005FD0.c
+++ b/src/code_80005FD0.c
@@ -374,6 +374,47 @@ char *D_800ECF3C = "4位の人終了\n";
char *D_800ECF4C = "OGA 表彰 move 終了\n";
char *D_800ECF60 = "OGAWA DEBUG DRAW\n";
+/* end of bss_Main.s imported. Commented out cause need everything prior too.
+ s16 *D_801645E0;
+ s16 D_801645E4_pad[3];
+
+ f32 D_801645E8[4];
+
+ f32 D_801645F8[4];
+
+ s32 D_80164608[4];
+
+ f32 D_80164618[4];
+
+ f32 D_80164628[4];
+
+ f32 D_80164638[4];
+
+ f32 D_80164648[4];
+ f32 D_80164658[4];
+
+ s16 gNearestWaypointByCameraId[4];
+
+ s16 D_80164670[4];
+ s16 D_80164678[4];
+ s16 D_80164680[4];
+ f32 D_80164688[4];
+ f32 D_80164698;
+ f32 D_8016469C;
+ f32 D_801646A0;
+
+ s32 D_801646A4_pad[7];
+
+ s16 D_801646C0[2];
+
+ s32 D_801646C8;
+
+ s16 D_801646CC;
+ //.skip 4
+
+ UnkStruct_46D0 D_801646D0[4];
+*/
+
s16 func_80005FD0(Vec3f arg0, Vec3f arg1) {
s16 temp_ret;
s16 phi_v1;
@@ -525,7 +566,7 @@ void set_places(void) {
f32 temp_f0;
s32 sp80[8];
s32 a_really_cool_variable_name;
- s32 stackPadding1;
+ UNUSED s32 pad;
s32 var_t4;
s32 playerId;
s32 temp_a0;
@@ -611,7 +652,7 @@ void set_places(void) {
void func_800070F4(void) {
f32 temp_f0;
- s32 stackPadding;
+ UNUSED s32 pad;
s32 sp50[8];
s32 temp_a0;
s32 temp_t2_2;
@@ -758,94 +799,89 @@ s32 func_80007BF8(u16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) {
return var_v1;
}
-#ifdef MIPS_TO_C
-//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9
-extern s16 D_801631E0;
-extern u16 D_80163344;
+#ifdef NON_MATCHING // Likely func equiv
+// https://decomp.me/scratch/Te4u1
+
+extern u16 D_80163344[];
extern s16 D_80163478;
-extern ? D_801634C0;
+extern s16 D_801634C0[];
void func_80007D04(s32 playerId, Player *player) {
- s32 sp1C;
- s16 *var_at;
s16 temp_t1;
s16 temp_t2;
- s16 temp_v1;
- s16 var_t5;
- s32 temp_v0;
- s32 temp_v1_2;
s32 var_v0;
-
- temp_v1 = D_80163478;
- temp_t1 = D_80164450[temp_v1];
+ temp_t1 = D_80164450[D_80163478];
temp_t2 = D_80164450[playerId];
+
if (gGPCurrentRaceRankByPlayerId[playerId] < 2) {
- if (((s16) (temp_t2 - temp_t1) >= 0x191) && ((s16)gGPCurrentRaceRankByPlayerId[temp_v1] >= 6)) {
+ s16 val1 = gGPCurrentRaceRankByPlayerId[D_80163478];
+ s16 val2 = temp_t2 - temp_t1;
+
+ if (val2 > 400 && val1 >= 6) {
player->effects &= ~0x200000;
player_speed(player);
- var_t5 = 4;
- var_at = &D_801634C0 + (playerId * 2);
- } else {
- switch (gCCSelection) { /* irregular */
- case CC_50:
- var_v0 = 0;
- if (playerId == D_80163344) {
- var_v0 = 0x14;
- }
- break;
- case CC_100:
- var_v0 = 8;
- if (playerId == D_80163344) {
- var_v0 = 0x18;
- }
- break;
- case CC_150:
- var_v0 = 0x12;
- if (playerId == D_80163344) {
- var_v0 = 0x24;
- }
- break;
- case CC_EXTRA:
- var_v0 = 8;
- if (playerId == D_80163344) {
- var_v0 = 0x18;
- }
- break;
- default:
- var_v0 = 0;
- break;
- }
- if (temp_t2 < temp_t1) {
- player->effects |= 0x200000;
- player_speed(player);
- *(&D_801634C0 + (playerId * 2)) = 1;
- } else {
- temp_v0 = playerId * 2;
- if (temp_t2 < (temp_t1 + var_v0 + 0x32)) {
- player->effects &= ~0x200000;
- player_speed(player);
- *(&D_801634C0 + (playerId * 2)) = 3;
- } else if (*(&D_801631E0 + temp_v0) == 0) {
- player->effects &= ~0x200000;
- sp1C = temp_v0;
- player_speed(player);
- *(&D_801634C0 + temp_v0) = 2;
- } else {
- player->effects &= ~0x200000;
- sp1C = temp_v0;
- func_80031F48(player, 1.0f);
- var_t5 = -1;
- var_at = &D_801634C0 + temp_v0;
- }
- }
+ D_801634C0[playerId] = 4;
+ return;
}
- *var_at = var_t5;
} else {
player->effects |= 0x200000;
player_speed(player);
- *(&D_801634C0 + (playerId * 2)) = 3;
+ D_801634C0[playerId] = 3;
+ return;
+ }
+
+ // Something wrong here. Maybe needs
+ // var_v0 = 0;
+ switch (gCCSelection) {
+ case 0:
+ var_v0 = 0;
+ if (playerId == D_80163344[0]) {
+ var_v0 = 0x14;
+ }
+ break;
+ case 1:
+ var_v0 = 8;
+ if (playerId == D_80163344[0]) {
+ var_v0 = 0x18;
+ }
+ break;
+ case 2:
+ var_v0 = 0x12;
+ if (playerId == D_80163344[0]) {
+ var_v0 = 0x24;
+ }
+ break;
+ case 3:
+ var_v0 = 8;
+ if (playerId == D_80163344[0]) {
+ var_v0 = 0x18;
+ }
+ break;
+ default:
+ var_v0 = 0;
+ break;
+ }
+
+ if (temp_t2 < temp_t1) {
+ player->effects |= 0x200000;
+ player_speed(player);
+ D_801634C0[playerId] = 1;
+
+ } else if (temp_t2 < (temp_t1 + var_v0 + 0x32)) {
+ player->effects &= ~0x200000;
+ player_speed(player);
+ D_801634C0[playerId] = 3;
+ } else if (D_801631E0[playerId] == 0) {
+ player->effects &= ~0x200000;
+ player_speed(player);
+ D_801634C0[playerId] = 2;
+ } else {
+ player->effects &= ~0x200000;
+ func_80031F48(player, 1.0f);
+ D_801634C0[playerId] = -1;
}
}
+
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80007D04.s")
#endif
@@ -1404,8 +1440,6 @@ void func_800090F0(s32 playerId, Player *player) {
}
}
-extern f32 D_8016344C;
-
/**
* Helps calculate time since player last touched finishline.
**/
@@ -2530,15 +2564,12 @@ void func_8000B95C(s32 playerId, u16 waypointIndex, s32 pathIndex) {
}
void func_8000BA14(u16 waypointIndex, f32 arg1, f32 arg2, s16 pathIndex) {
- s32 stackPadding0;
- s32 stackPadding1;
- s32 stackPadding2;
- s32 stackPadding3;
+ UNUSED s32 pad[4];
f32 waypointOneX;
f32 waypointOneZ;
f32 waypointTwoX;
f32 waypointTwoZ;
- s32 stackPadding4;
+ UNUSED s32 pad2;
f32 xdiff;
f32 zdiff;
f32 distance;
@@ -3164,16 +3195,10 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000D438.s")
#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) {
- s32 stackPadding0;
- s32 stackPadding1;
- s32 stackPadding2;
- s32 stackPadding3;
+ UNUSED s32 pad[4];
s16 waypoint2;
s16 waypoint1;
- s32 stackPadding4;
- s32 stackPadding5;
- s32 stackPadding6;
- s32 stackPadding7;
+ UNUSED s32 pad2[4];
f32 distance;
f32 temp_f20;
f32 temp_f22;
@@ -3228,17 +3253,10 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000D6D0.s")
#ifdef NON_MATCHING
// Something about the handling of D_80162FA0 is really off, can't figure out what
s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathIndex) {
- s32 stackPadding0;
- s32 stackPadding1;
- s32 stackPadding2;
- s32 stackPadding3;
+ UNUSED s32 pad[4];
s16 waypoint2;
s16 waypoint1;
- s32 stackPadding4;
- s32 stackPadding5;
- s32 stackPadding6;
- s32 stackPadding7;
- s32 stackPadding8;
+ UNUSED s32 pad2[4];
f32 distance;
f32 temp_f20;
f32 temp_f22;
@@ -3252,7 +3270,7 @@ s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathInd
f32 ydiff;
f32 zdiff;
Vec3f sp54;
- s32 stackPadding9;
+ UNUSED s32 pad3;
TrackWaypoint *path;
sp54[0] = arg0[0];
@@ -3873,18 +3891,13 @@ void func_8000EF20(void) {
}
void func_8000F0E0(void) {
- D_80164670[0] = 0;
- D_80164678[0] = 0;
- D_80164672 = 0;
- D_8016467A = 0;
- D_80164674 = 0;
- D_8016467C = 0;
- D_80164676 = 0;
- D_8016467E = 0;
+ s32 i;
+ for (i = 0; i < 4; i++) {
+ D_80164670[i] = 0;
+ D_80164678[i] = 0;
+ }
}
-extern u16 D_80163348[];
-
void func_8000F124(void) {
s32 var_a1;
s32 i, j;
@@ -3929,19 +3942,6 @@ void func_8000F2BC(TrackWaypoint *arg0, size_t size) {
bzero((void *) arg0, size * sizeof(TrackWaypoint));
}
-struct _struct_D_800DD9D0_0x10 {
- /* 0x00 */ u16 unk0;
- /* 0x02 */ u16 unk2;
- /* 0x04 */ u16 unk4;
- /* 0x06 */ u16 unk6;
- /* 0x08 */ u16 unk8;
- /* 0x0A */ char padA[6];
-}; // size 0x10
-extern uintptr_t *D_80163598;
-
-// An array of 21 items. The final element is for podium ceremony.
-extern struct _struct_D_800DD9D0_0x10 D_800DD9D0[];
-
// Appears to allocate memory for each course.
void func_8000F2DC(void) {
@@ -4016,51 +4016,6 @@ void func_8000F2DC(void) {
func_8000EEDC();
}
-extern s16 D_80162F10[];
-extern s16 D_80162F50[];
-extern s16 D_80162FF8[];
-extern s16 D_80163010[];
-extern f32 D_80163028[];
-extern s16 D_80163050[];
-extern f32 D_80163090[];
-extern u16 D_80163258[];
-extern u16 D_80163270[];
-extern s16 D_80163346[];
-extern s32 D_801630B8[];
-extern s16 D_801630E8[];
-extern s32 D_80163100[];
-extern s32 D_80163128[];
-extern s32 D_80163150[];
-extern f32 D_80163178[];
-extern f32 D_801631A0[];
-extern s32 D_801631CC;
-extern s16 D_801631F8[];
-extern f32 D_80163210[];
-extern s32 D_80163288[];
-extern u16 D_80163330[]; // static?
-extern u16 D_80163344[];
-extern u16 D_8016334C[];
-extern s16 D_80163350[];
-extern s32 D_80163378;
-extern s16 D_80163380[];
-extern s16 D_80163398[];
-extern s16 D_801633B0[];
-extern s16 D_801633C8[];
-extern s16 D_801633F8[];
-extern f32 D_80163450[];
-extern s16 D_801634C0[];
-extern s16 D_801634EC;
-extern s32 D_801634F0;
-extern s32 D_801634F4;
-extern s16 D_80164358;
-extern s16 D_8016435A;
-extern s16 D_8016435C;
-//extern ? D_80164448;
-extern s16 D_80164538[];
-extern f32 D_80164698;
-extern f32 D_8016469C;
-extern f32 D_801646A0;
-extern f32 D_800DCAA0[];
// static f32 D_800DCAA0[21] = {
// 0.3f,
// 0.3f,
@@ -4092,7 +4047,7 @@ void func_8000F628(void) {
s32 i;
Test *var_s5;
s32 temp_v1;
- s32 pad;
+ UNUSED s32 pad;
for (i = 0; i < NUM_PLAYERS; i++) {
Player *player = &gPlayerOne[i];
@@ -4244,9 +4199,6 @@ void func_8000F628(void) {
func_80011A5C();
}
-extern uintptr_t gCoursePathTable[20][4];
-extern uintptr_t D_800DC8D0[20][4];
-
// @arg index from 0 to 3.
// Processes course path by index.
@@ -4259,7 +4211,7 @@ void func_800100F0(s32 pathIndex) {
TrackWaypoint *path;
s32 var_v0;
s32 sp24;
- s32 pad[2];
+ UNUSED s32 pad[2];
s16 bInvalidPath;
s32 i;
@@ -4348,7 +4300,7 @@ void func_80010218(s32 pathIndex) {
f32 func_80010480(s32 pathIndex, u16 waypointIndex) {
f32 temp_f10_2;
f32 temp_f8;
- UNUSED f32 stackPadding;
+ UNUSED f32 pad;
TrackWaypoint *pathWaypoints;
f32 x1;
f32 z1;
@@ -4512,194 +4464,140 @@ void func_80010E6C(s32 pathIndex) {
}
}
-f32 func_80010F40(f32 arg0, f32 arg1, f32 arg2, UNUSED s32 arg3) {
+f32 func_80010F40(f32 arg0, f32 arg1, f32 arg2, UNUSED s32 arg3, UNUSED s32 arg4) {
arg1 = func_802AE1C0(arg0, 2000.0f, arg2);
func_802ADDC8(&D_80162E70, 1.0f, arg0, arg1, arg2);
return arg1;
}
-f32 func_80010FA0(f32 arg0, f32 arg1, f32 arg2, UNUSED s32 arg3) {
+f32 func_80010FA0(f32 arg0, f32 arg1, f32 arg2, UNUSED s32 arg3, UNUSED s32 arg4) {
arg1 = func_802AE1C0(arg0, (f32) ((f64) arg1 + 30.0), arg2);
func_802ADDC8(&D_80162E70, 10.0f, arg0, arg1, arg2);
return arg1;
}
-#ifdef MIPS_TO_C
-//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9
-s16 gCurrentCourseId; /* unable to generate initializer */
-
-s32 func_80011014(TrackWaypoint *arg0, TrackWaypoint *arg1, s32 arg2, s32 arg3) {
- f32 spE0;
- f32 spDC;
- f32 spD8;
- f32 spD4;
- f32 spD0;
- f32 spCC;
- f32 spC0;
- f32 spB8;
- f32 spAC;
- f32 sp94;
- s32 sp84;
- f64 sp78;
- f32 temp_f0;
- f32 temp_f0_5;
- f32 temp_f12;
- f32 temp_f14;
- f32 temp_f14_2;
- f32 temp_f14_3;
- f32 temp_f16;
- f32 temp_f18;
- f32 temp_f20;
- f32 temp_f20_2;
- f32 temp_f22;
- f32 temp_f22_2;
- f32 temp_f22_3;
- f32 temp_f24;
+/**
+ * @return's the number of items processed.
+*/
+s32 func_80011014(TrackWaypoint *pathDest, TrackWaypoint *path, s32 numPathPoints, s32 pathIndex) {
f32 temp_f24_2;
- f32 temp_f26;
- f32 temp_f26_2;
- f32 temp_f2;
- f32 temp_f2_2;
f32 temp_f2_3;
- f32 var_f0;
f32 var_f20_2;
- f32 var_f28;
+ f32 x1;
+ f32 z1;
+ f32 x2;
+ f32 z2;
+ f32 x3;
+ f32 z3;
+ f32 x1_2;
+ f32 z1_3;
+ f32 temp_f20;
f32 var_f30;
- f64 temp_f0_2;
- f64 temp_f0_3;
- f64 temp_f0_4;
- f64 temp_f2_4;
- f64 var_f0_2;
- f64 var_f20;
- s16 temp_v0_2;
- s32 temp_a2;
+ f32 temp_f22;
+ f32 temp_f16;
+ s32 i;
+
+ f32 j;
s32 var_s0;
- s32 var_s3;
- TrackWaypoint *temp_a0;
- TrackWaypoint *temp_v0;
- TrackWaypoint *temp_v1;
- TrackWaypoint *var_s1;
+ f32 var_f28;
- temp_f22 = (f32) arg1->posZ;
+ TrackWaypoint *point1;
+ TrackWaypoint *point2;
+ TrackWaypoint *point3;
+ f32 temp;
+ TrackWaypoint *dest;
var_f30 = 0.0f;
- var_s1 = arg0;
- temp_f20 = (f32) arg1->posX;
var_s0 = 0;
- var_f28 = func_80010F40(temp_f20, 2000.0f, temp_f22, (s32) gCurrentCourseId, /* extra? */ 0);
- var_s3 = 0;
- if (arg2 > 0) {
- sp78 = (f64) 0.0f;
- spC0 = temp_f20;
- spB8 = temp_f22;
- do {
- temp_a2 = var_s3 + 1;
- temp_v0 = &arg1[var_s3 % arg2];
- temp_v1 = &arg1[temp_a2 % arg2];
- temp_a0 = &arg1[(s32) (var_s3 + 2) % arg2];
- temp_f26 = (f32) temp_v0->posX;
- temp_f14 = (f32) temp_v0->posZ;
- temp_f20_2 = (f32) temp_v1->posX;
- temp_f22_2 = (f32) temp_v1->posZ;
- spD0 = (f32) temp_a0->posX;
- temp_f0 = temp_f20_2 - temp_f26;
- spDC = temp_f14;
- temp_f2 = temp_f22_2 - temp_f14;
- sp84 = temp_a2;
- spAC = 0.0f;
- spCC = (f32) temp_a0->posZ;
- temp_f24 = sqrtf((temp_f0 * temp_f0) + (temp_f2 * temp_f2));
- temp_f2_2 = spD0 - temp_f20_2;
- spD8 = temp_f20_2;
- spD4 = temp_f22_2;
- temp_f14_2 = spCC - temp_f22_2;
- spE0 = temp_f26;
- sp94 = (f32) (0.05 / (f64) (sqrtf((temp_f2_2 * temp_f2_2) + (temp_f14_2 * temp_f14_2)) + temp_f24));
- if (sp78 <= 1.0) {
- var_f20 = (f64) spAC;
- do {
- temp_f0_2 = 1.0 - var_f20;
- temp_f2_3 = (f32) (temp_f0_2 * 0.5 * temp_f0_2);
- temp_f14_3 = (f32) ((temp_f0_2 * var_f20) + 0.5);
- temp_f16 = (f32) (var_f20 * 0.5 * var_f20);
- temp_f24_2 = (temp_f2_3 * spE0) + (temp_f14_3 * spD8) + (temp_f16 * spD0);
- temp_f18 = temp_f24_2 - spC0;
- temp_f26_2 = (temp_f2_3 * spDC) + (temp_f14_3 * spD4) + (temp_f16 * spCC);
- temp_f22_3 = temp_f26_2 - spB8;
- var_f30 += sqrtf((temp_f18 * temp_f18) + (temp_f22_3 * temp_f22_3));
- spC0 = temp_f24_2;
- spB8 = temp_f26_2;
- if ((var_f30 > 20.0f) || ((var_s3 == 0) && (var_f20 == 0.0))) {
- if (gIsMirrorMode != 0) {
- temp_f12 = -temp_f24_2;
- var_s1->posX = (s16) (s32) temp_f12;
- var_f0 = func_80010FA0(temp_f12, var_f28, temp_f26_2, (s32) gCurrentCourseId, /* extra? */ var_s0);
+ temp_f20 = (f32) path[0].posX;
+ temp_f22 = (f32) path[0].posZ;
+ var_f28 = func_80010F40(temp_f20, 2000.0f, temp_f22, gCurrentCourseId, 0);
+
+ for (i = 0; i < numPathPoints; i++) {
+ point1 = &path[i % numPathPoints];
+ point2 = &path[(i + 1) % numPathPoints];
+ point3 = &path[(s32) (i + 2) % numPathPoints];
+ x1 = (f32) point1->posX;
+ z1 = (f32) point1->posZ;
+ x2 = (f32) point2->posX;
+ z2 = (f32) point2->posZ;
+ x3 = (f32) point3->posX;
+ z3 = (f32) point3->posZ;
+
+ temp = 0.05 / (sqrtf(((x2 - x1) * (x2 - x1)) + ((z2 - z1) * (z2 - z1))) + (sqrtf(((x3 - x2) * (x3 - x2)) + ((z3 - z2) * (z3 - z2)))));
+
+ for (j = 0.0f; j <= 1.0 ; j += temp) {
+
+ temp_f2_3 = (f32) ((1.0 - j) * 0.5 * (1.0 - j));
+ z1_3 = (f32) (((1.0 - j) * j) + 0.5);
+ temp_f16 = (f32) (j * 0.5 * j);
+
+ temp_f24_2 = (temp_f2_3 * x1) + (z1_3 * x2) + (temp_f16 * x3);
+ x1_2 = (temp_f2_3 * z1) + (z1_3 * z2) + (temp_f16 * z3);
+
+ var_f30 += sqrtf(((temp_f24_2 - temp_f20) * (temp_f24_2 - temp_f20)) + ((x1_2 - temp_f22) * (x1_2 - temp_f22)));
+
+ temp_f20 = temp_f24_2;
+ temp_f22 = x1_2;
+
+ if ((var_f30 > 20.0f) || ((i == 0) && (j == 0.0))) {
+ if (gIsMirrorMode) {
+ //temp_f12 = -temp_f24_2;
+ pathDest->posX = (s16) -temp_f24_2;
+ var_f20_2 = func_80010FA0(-temp_f24_2, var_f28, x1_2, gCurrentCourseId, var_s0);
+ } else {
+ pathDest->posX = (s16) temp_f24_2;
+ var_f20_2 = func_80010FA0(temp_f24_2, var_f28, x1_2, gCurrentCourseId, var_s0);
+ }
+
+
+ pathDest->posZ = (s16) temp_f22;
+ pathDest->trackSegment = func_802ABD40(D_80162E70.unk3A);
+
+ if (var_f20_2 < -500.0) {
+ var_f20_2 = var_f28;
+ } else {
+
+ switch (gCurrentCourseId) {
+ case 13:
+ if (var_f20_2 < (var_f28 - 15.0)) {
+ var_f20_2 = (f32) var_f28 - 15.0;
+ }
+ break;
+ case 14:
+ if ((var_s0 >= 1140) && (var_s0 <= 1152)) {
+ var_f20_2 = var_f28;
} else {
- var_s1->posX = (s16) (s32) temp_f24_2;
- var_f0 = func_80010FA0(temp_f24_2, var_f28, temp_f26_2, (s32) gCurrentCourseId, /* extra? */ var_s0);
+ if (var_f20_2 < (var_f28 - 10.0)) {
+ var_f20_2 = (f32) (var_f28 - 4.0);
+ }
}
- var_f20_2 = var_f0;
- var_s1->posZ = (s16) (s32) temp_f26_2;
- var_s1->trackSegment = func_802ABD40(D_80162E70.unk3A);
- temp_f2_4 = (f64) var_f20_2;
- if (temp_f2_4 < -500.0) {
+ break;
+ case 18:
+ if ((var_s0 > 204) && (var_s0 < 220)) {
var_f20_2 = var_f28;
} else {
- temp_v0_2 = gCurrentCourseId;
- switch (temp_v0_2) { /* irregular */
- case 13:
- var_f0_2 = (f64) var_f28 - 15.0;
- if (temp_f2_4 < var_f0_2) {
-block_29:
- var_f20_2 = (f32) var_f0_2;
- }
- break;
- case 14:
- if ((var_s0 >= 0x474) && (var_s0 < 0x481)) {
- var_f20_2 = var_f28;
- } else {
- temp_f0_3 = (f64) var_f28;
- if (temp_f2_4 < (temp_f0_3 - 10.0)) {
- var_f20_2 = (f32) (temp_f0_3 - 4.0);
- }
- }
- break;
- case 18:
- if ((var_s0 >= 0xCD) && (var_s0 < 0xDC)) {
- var_f20_2 = var_f28;
- } else {
- temp_f0_4 = (f64) var_f28;
- if (temp_f2_4 < (temp_f0_4 - 10.0)) {
- var_f20_2 = (f32) (temp_f0_4 - 4.0);
- }
- }
- break;
- default:
- var_f0_2 = (f64) var_f28 - 10.0;
- if (temp_f2_4 < var_f0_2) {
- goto block_29;
- }
- break;
+ if (var_f20_2 < (var_f28 - 10.0)) {
+ var_f20_2 = (f32) (var_f28 - 4.0);
}
}
- var_f30 = 0.0f;
- var_f28 = var_f20_2;
- var_s1 += 8;
- var_s0 += 1;
- var_s1->unk-6 = (s16) (s32) var_f20_2;
+ break;
+ default:
+ if (var_f20_2 < (var_f28 - 10.0)) {
+ var_f20_2 = (f32) var_f28 - 10.0;
+ }
+ break;
}
- temp_f0_5 = spAC + sp94;
- var_f20 = (f64) temp_f0_5;
- spAC = temp_f0_5;
- } while (var_f20 <= 1.0);
+ }
+ var_f28 = var_f20_2;
+ pathDest->posY = (s16) (s32) var_f20_2;
+ var_f30 = 0.0f;
+ pathDest++;
+ var_s0 += 1;
}
- var_s3 = sp84;
- } while (var_s3 != arg2);
+ }
}
return var_s0;
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80011014.s")
-#endif
// Returns number of waypoints processed.
s32 process_path_data(TrackWaypoint *dest, TrackWaypoint *src) {
@@ -4732,143 +4630,79 @@ s32 process_path_data(TrackWaypoint *dest, TrackWaypoint *src) {
return var_v1;
}
-#ifdef MIPS_TO_C
-//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
-extern f64 D_800ED078;
-
-// blank memory segmented waypoints waypoint size
-s32 func_8001168C(s16 *arg0, void *arg1, s32 arg2) {
- f32 spC8;
- f32 spC4;
- f32 spC0;
- f32 spBC;
- f32 spB8;
- f32 spB4;
- f32 spA8;
- f32 spA0;
- f32 sp94;
- f32 sp84;
- f32 sp7C;
- f64 sp68;
- f32 temp_f0;
- f32 temp_f0_3;
- f32 temp_f14;
- f32 temp_f14_2;
+s32 func_8001168C(PathNoY *pathDest, TrackWaypoint *pathSrc, s32 numWaypoints) {
f32 temp_f14_3;
- f32 temp_f16;
f32 temp_f16_2;
- f32 temp_f18;
- f32 temp_f18_2;
- f32 temp_f20;
- f32 temp_f20_2;
- f32 temp_f22;
+ s32 pad;
+
+ f32 x1;
+ f32 z1;
+ f32 x2;
+ f32 z2;
+ f32 x3;
+ f32 z3;
+
+
+ s32 pad2;
f32 temp_f24;
+
+ f32 spA8;
f32 temp_f26;
- f32 temp_f2;
- f32 temp_f2_2;
+ f32 spA0;
+
f32 temp_f2_3;
- f32 temp_f6;
- f64 temp_f0_2;
- f64 temp_f20_3;
- s16 *temp_s0;
- s32 temp_s5;
- void *temp_a0;
- void *temp_v0;
- void *temp_v1;
- s32 phi_s2;
- f64 phi_f20;
- s16 *phi_s0;
- s32 phi_s1;
- s16 *phi_s0_2;
- s16 *phi_s0_3;
- s32 phi_s1_2;
- s32 phi_s1_3;
- s32 phi_s1_4;
- s32 phi_s1_5;
-
- sp84 = 0.0f;
- spA8 = arg1->unk0;
- spA0 = arg1->unk4;
- phi_s2 = 0;
- phi_s1 = 0;
- phi_s0_2 = arg0;
- phi_s1_3 = 0;
- if (arg2 > 0) {
- sp68 = 0.0f;
- do {
- temp_s5 = phi_s2 + 1;
- temp_v0 = ((phi_s2 % arg2) * 8) + arg1;
- temp_v1 = ((temp_s5 % arg2) * 8) + arg1;
- temp_a0 = (((phi_s2 + 2) % arg2) * 8) + arg1;
- temp_f14 = temp_v0->unk0;
- temp_f16 = temp_v0->unk4;
- temp_f18 = temp_v1->unk0;
- temp_f20 = temp_v1->unk4;
- spB8 = temp_a0->unk0;
- temp_f0 = temp_f18 - temp_f14;
- spBC = temp_f20;
- temp_f2 = temp_f20 - temp_f16;
- spC0 = temp_f18;
- spC4 = temp_f16;
- spC8 = temp_f14;
- sp94 = 0.0f;
- spB4 = temp_a0->unk4;
- temp_f2_2 = spB8 - spC0;
- temp_f20_2 = sqrtf((temp_f0 * temp_f0) + (temp_f2 * temp_f2));
- temp_f14_2 = spB4 - spBC;
- sp7C = D_800ED078 / (sqrtf((temp_f2_2 * temp_f2_2) + (temp_f14_2 * temp_f14_2)) + temp_f20_2);
- phi_s0 = phi_s0_2;
- phi_s1_2 = phi_s1_3;
- phi_s1_5 = phi_s1_3;
- if (sp68 <= 1.0) {
- phi_f20 = sp94;
- do {
- temp_f0_2 = 1.0 - phi_f20;
- temp_f2_3 = temp_f0_2 * 0.5 * temp_f0_2;
- temp_f14_3 = (temp_f0_2 * phi_f20) + 0.5;
- temp_f16_2 = phi_f20 * 0.5 * phi_f20;
- temp_f24 = (temp_f2_3 * spC8) + (temp_f14_3 * spC0) + (temp_f16_2 * spB8);
- temp_f18_2 = temp_f24 - spA8;
- temp_f26 = (temp_f2_3 * spC4) + (temp_f14_3 * spBC) + (temp_f16_2 * spB4);
- temp_f22 = temp_f26 - spA0;
- temp_f6 = sp84 + sqrtf((temp_f18_2 * temp_f18_2) + (temp_f22 * temp_f22));
- spA8 = temp_f24;
- spA0 = temp_f26;
- sp84 = temp_f6;
- phi_s0_3 = phi_s0;
- phi_s1_4 = phi_s1_5;
- if ((temp_f6 > 20.0f) || ((phi_s2 == 0) && (phi_f20 == 0.0))) {
- phi_s1_4 = phi_s1_5 + 1;
- if (gIsMirrorMode != 0) {
- *phi_s0 = -temp_f24;
- } else {
- *phi_s0 = temp_f24;
- }
- temp_s0 = phi_s0 + 4;
- temp_s0->unk-2 = temp_f26;
- sp84 = 0.0f;
- phi_s0_3 = temp_s0;
- }
- temp_f0_3 = sp94 + sp7C;
- temp_f20_3 = temp_f0_3;
- sp94 = temp_f0_3;
- phi_f20 = temp_f20_3;
- phi_s0 = phi_s0_3;
- phi_s1_2 = phi_s1_4;
- phi_s0_2 = phi_s0_3;
- phi_s1_5 = phi_s1_4;
- } while (temp_f20_3 <= 1.0);
- }
- phi_s2 = temp_s5;
- phi_s1 = phi_s1_2;
- phi_s1_3 = phi_s1_2;
- } while (temp_s5 != arg2);
- }
- return phi_s1;
+
+ TrackWaypoint *point1;
+ f32 j;
+ TrackWaypoint *point2;
+ TrackWaypoint *point3;
+ s32 i;
+ f32 temp_f6 = 0.0f;
+ s32 count;
+ f32 sp7C;
+
+ spA8 = pathSrc[0].posX;
+ spA0 = pathSrc[0].posZ;
+ count = 0;
+
+ for (i = 0; i < numWaypoints; i++) {
+ point1 = &pathSrc[((i % numWaypoints))];
+ point2 = &pathSrc[(((i + 1) % numWaypoints))];
+ point3 = &pathSrc[(((i + 2) % numWaypoints))];
+ x1 = point1->posX;
+ z1 = point1->posZ;
+ x2 = point2->posX;
+ z2 = point2->posZ;
+ x3 = point3->posX;
+ z3 = point3->posZ;
+
+ sp7C = 0.05 / (sqrtf(((x2 - x1) * (x2 - x1)) + ((z2 - z1) * (z2 - z1))) + sqrtf(((x3 - x2) * (x3 - x2)) + ((z3 - z2) * (z3 - z2))));
+
+ for (j = 0.0f; j <= 1.0; j += sp7C) {
+ temp_f2_3 = (1.0 - j) * 0.5 * (1.0 - j);
+ temp_f14_3 = ((1.0 - j) * j) + 0.5;
+ temp_f16_2 = j * 0.5 * j;
+
+ temp_f24 = (temp_f2_3 * x1) + (temp_f14_3 * x2) + (temp_f16_2 * x3);
+ temp_f26 = (temp_f2_3 * z1) + (temp_f14_3 * z2) + (temp_f16_2 * z3);
+ temp_f6 += sqrtf(((temp_f24 - spA8) * (temp_f24 - spA8)) + ((temp_f26 - spA0) * (temp_f26 - spA0)));
+ spA8 = temp_f24;
+ spA0 = temp_f26;
+ if ((temp_f6 > 20.0f) || ((i == 0) && (j == 0.0))) {
+ if (gIsMirrorMode) {
+ pathDest->x = (s16) -spA8;
+ } else {
+ pathDest->x = (s16) spA8;
+ }
+ pathDest->z = spA0;
+ count += 1;
+ pathDest++;
+ temp_f6 = 0.0f;
+ }
+ }
+ }
+ return count;
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001168C.s")
-#endif
void func_80011A5C(void) {
s32 i;
@@ -5136,7 +4970,7 @@ void func_80012190(void) {
void func_80012220(VehicleStuff *vehicle) {
f32 origXPos;
- UNUSED f32 stackPadding;
+ UNUSED f32 pad;
f32 origZPos;
origXPos = vehicle->position[0];
@@ -5213,14 +5047,14 @@ void init_course_vehicles(void) {
break;
case COURSE_DK_JUNGLE:
for(loopIndex = 0; loopIndex < NUM_PADDLE_WHEEL_BOATS; loopIndex++) {
- tempPaddleWheelBoat = &D_801637C0[loopIndex];
+ tempPaddleWheelBoat = &gFerries[loopIndex];
if(tempPaddleWheelBoat->isActive == 1) {
origXPos = tempPaddleWheelBoat->position[0];
origZPos = tempPaddleWheelBoat->position[2];
- tempPaddleWheelBoat->yRotation = func_8000DBAC(tempPaddleWheelBoat->position, &tempPaddleWheelBoat->waypointIndex, tempPaddleWheelBoat->someMultiplier);
+ tempPaddleWheelBoat->rotY = func_8000DBAC(tempPaddleWheelBoat->position, &tempPaddleWheelBoat->waypointIndex, tempPaddleWheelBoat->someMultiplier);
tempPaddleWheelBoat->velocity[0] = tempPaddleWheelBoat->position[0] - origXPos;
tempPaddleWheelBoat->velocity[2] = tempPaddleWheelBoat->position[2] - origZPos;
- vec3s_set(paddleWheelBoatRot, 0, tempPaddleWheelBoat->yRotation, 0);
+ vec3s_set(paddleWheelBoatRot, 0, tempPaddleWheelBoat->rotY, 0);
tempPaddleWheelBoat->actorIndex = addActorToEmptySlot(tempPaddleWheelBoat->position, paddleWheelBoatRot, tempPaddleWheelBoat->velocity, ACTOR_PADDLE_WHEEL_BOAT);
}
}
@@ -5272,8 +5106,8 @@ void func_80012780(TrainCarStuff *trainCar, s16 *arg1, u16 arg2) {
*/
void func_800127E0(void) {
u16 waypointOffset;
- TrainCarStuff * ptr1;
- s32 * ptr2;
+ TrainCarStuff *ptr1;
+ s32 *ptr2;
s32 i;
s32 j;
@@ -5352,7 +5186,7 @@ void func_80012A48(TrainCarStuff *trainCar, s16 arg1) {
}
void func_80012AC0(void) {
- s32 pad[3];
+ UNUSED s32 pad[3];
f32 temp_f20;
TrainCarStuff *car;
u16 temp_s0;
@@ -5535,9 +5369,9 @@ void func_800132F4(void) {
s32 i;
TrackWaypoint *temp_a2;
u16 temp;
- for (i = 0; i < 1; i++) {
+ for (i = 0; i < NUM_PADDLE_WHEEL_BOATS; i++) {
temp = i * 0xB4;
- var_a1 = &D_801637C0[i];
+ var_a1 = &gFerries[i];
temp_a2 = &D_80163598[temp];
var_a1->position[0] = (f32) temp_a2->posX;
var_a1->position[1] = (f32) D_80162EB2;
@@ -5559,136 +5393,110 @@ void func_800132F4(void) {
// fakematch
temp_a2 = &D_80163598[temp];
var_a1->someMultiplier = 1.6666666f;
- var_a1->yRotation = 0;
+ var_a1->rotY = 0;
}
D_801630FC = 0;
}
-#ifdef MIPS_TO_C
-//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-10-2023
-extern s32 D_80163598;
-extern s32 D_8016359C;
-
void func_800133C4(void) {
- f32 sp9C;
- f32 sp98;
- f32 sp94;
- f32 sp90;
- f32 sp8C;
- f32 sp88;
- f32 sp80;
- f32 sp7C;
- f32 sp78;
- PaddleWheelBoatStuff *var_s0;
- f32 *temp_s1;
- f32 *temp_s2;
- f32 temp_f0_3;
+ PaddleWheelBoatStuff *ferry;
+ TrackWaypoint *waypoint;
+ s32 i;
+ struct Actor *ferryActor;
f32 temp_f26;
f32 temp_f28;
f32 temp_f30;
- f64 temp_f0;
- f64 temp_f0_2;
s16 temp_a1;
+ s32 temp;
s16 var_v1;
- s32 temp_v0;
- s32 var_s3;
- struct Actor *temp_v0_3;
- void *temp_v0_2;
-
+ Vec3f sp94;
+ Vec3f sp88;
+ UNUSED s32 pad;
+ Vec3f sp78;
+ s32 pad2;
D_801630FC += 1;
- var_s0 = D_801637C0;
- var_s3 = 0;
- do {
- temp_s2 = var_s0->position;
- if (var_s0->isActive == (s16) 1) {
- temp_f26 = var_s0->position[0];
- temp_f28 = var_s0->position[1];
- temp_f30 = var_s0->position[2];
- func_8000DBAC(temp_s2, &var_s0->waypointIndex, var_s0->someMultiplier);
- temp_v0 = func_800061DC(temp_s2, 2000.0f, var_s0->someFlags);
- var_s0->someFlags = temp_v0;
- if ((((s16) D_801630FC % 10) == 0) && (temp_v0 != 0)) {
- sp78 = (f32) ((f64) var_s0->position[0] - 30.0);
- sp7C = (f32) ((f64) var_s0->position[1] + 180.0);
- sp80 = (f32) ((f64) var_s0->position[2] + 45.0);
- func_80006114(&sp78, temp_s2, var_s0->yRotation);
- func_80075A6C(var_s3, &sp78, 1.1f);
- sp78 = (f32) ((f64) var_s0->position[0] + 30.0);
- sp7C = (f32) ((f64) var_s0->position[1] + 180.0);
- sp80 = (f32) ((f64) var_s0->position[2] + 45.0);
- func_80006114(&sp78, temp_s2, var_s0->yRotation);
- func_80075A6C(var_s3, &sp78, 1.1f);
- }
- if (random_int(0x0064U) == 0) {
- temp_s1 = var_s0->velocity;
- if (random_int(2U) == 0) {
- func_800C98B8(temp_s2, temp_s1, 0x19018047U);
+ for (i = 0; i < NUM_PADDLE_WHEEL_BOATS; i++) {
+ ferry = &gFerries[i];
+ if (ferry->isActive == 1) {
+ temp_f26 = ferry->position[0];
+ temp_f28 = ferry->position[1];
+ temp_f30 = ferry->position[2];
+ func_8000DBAC(ferry->position, &ferry->waypointIndex, ferry->someMultiplier);
+ ferry->someFlags = func_800061DC(ferry->position, 2000.0f, ferry->someFlags);
+ if ((((s16) D_801630FC % 10) == 0) && (ferry->someFlags != 0)) {
+ sp78[0] = (f32) ((f64) ferry->position[0] - 30.0);
+ sp78[1] = (f32) ((f64) ferry->position[1] + 180.0);
+ sp78[2] = (f32) ((f64) ferry->position[2] + 45.0);
+ func_80006114(sp78, ferry->position, ferry->rotY);
+ func_80075A6C(i, sp78, 1.1f);
+ sp78[0] = (f32) ((f64) ferry->position[0] + 30.0);
+ sp78[1] = (f32) ((f64) ferry->position[1] + 180.0);
+ sp78[2] = (f32) ((f64) ferry->position[2] + 45.0);
+ func_80006114(sp78, ferry->position, ferry->rotY);
+ func_80075A6C(i, sp78, 1.1f);
+ }
+ if (random_int(100) == 0) {
+ if (random_int(2) == 0) {
+ func_800C98B8(ferry->position, ferry->velocity, 0x19018047U);
} else {
- func_800C98B8(temp_s2, temp_s1, 0x19018048U);
+ func_800C98B8(ferry->position, ferry->velocity, 0x19018048U);
}
}
- sp94 = temp_f26;
- sp98 = temp_f28;
- sp9C = temp_f30;
- temp_v0_2 = (((s32) ((u16) var_s0->waypointIndex + 5) % (s32) D_8016359C) * 4) + D_80163598;
- sp88 = (f32) temp_v0_2->unk0;
- sp8C = (f32) D_80162EB0;
- sp90 = (f32) temp_v0_2->unk2;
- temp_a1 = func_80005FD0(&sp94, &sp88) - var_s0->yRotation;
- var_v1 = temp_a1;
- if (temp_a1 < 0) {
- var_v1 = temp_a1 * -1;
+ sp94[0] = temp_f26;
+ sp94[1] = temp_f28;
+ sp94[2] = temp_f30;
+ waypoint = (TrackWaypoint *) &D_80163598[(ferry->waypointIndex + 5) % D_8016359C];
+ sp88[0] = (f32) waypoint->posX;
+ sp88[1] = (f32) D_80162EB0;
+ sp88[2] = (f32) waypoint->posY;
+ temp_a1 = func_80005FD0(sp94, sp88);
+ temp = temp_a1 - ferry->rotY;
+ var_v1 = temp;
+ if (var_v1 < 0) {
+ var_v1 = -var_v1;
}
if (var_v1 >= 0x1771) {
- temp_f0 = (f64) var_s0->someMultiplier;
- if (temp_f0 > 0.2) {
- var_s0->someMultiplier = (f32) (temp_f0 - 0.04);
+ if (ferry->someMultiplier > 0.2) {
+ ferry->someMultiplier -= 0.04;
}
if (var_v1 >= 0x3D) {
var_v1 = 0x003C;
}
} else {
- temp_f0_2 = (f64) var_s0->someMultiplier;
- if (temp_f0_2 < 2.0) {
- var_s0->someMultiplier = (f32) (temp_f0_2 + 0.02);
+ if (ferry->someMultiplier < 2.0) {
+ ferry->someMultiplier += 0.02;
}
if (var_v1 >= 0x1F) {
var_v1 = 0x001E;
}
}
- if (temp_a1 >= 0x8000) {
- var_s0->yRotation -= var_v1;
- } else if (temp_a1 > 0) {
- var_s0->yRotation += var_v1;
- } else if (temp_a1 < -0x7FFF) {
- var_s0->yRotation += var_v1;
- } else if (temp_a1 < 0) {
- var_s0->yRotation -= var_v1;
- }
- temp_f0_3 = var_s0->position[0];
- var_s0->velocity[0] = temp_f0_3 - temp_f26;
- var_s0->velocity[1] = var_s0->position[1] - temp_f28;
- var_s0->velocity[2] = var_s0->position[2] - temp_f30;
- temp_v0_3 = &gActorList[var_s0->actorIndex];
- temp_v0_3->pos[0] = temp_f0_3;
- temp_v0_3->pos[1] = var_s0->position[1];
- temp_v0_3->pos[2] = var_s0->position[2];
+ if (temp >= 0x8000) {
+ ferry->rotY -= var_v1;
+ } else if (temp > 0) {
+ ferry->rotY += var_v1;
+ } else if (temp < -0x7FFF) {
+ ferry->rotY += var_v1;
+ } else if (temp < 0) {
+ ferry->rotY -= var_v1;
+ }
+ ferry->velocity[0] = ferry->position[0] - temp_f26;
+ ferry->velocity[1] = ferry->position[1] - temp_f28;
+ ferry->velocity[2] = ferry->position[2] - temp_f30;
+ ferryActor = &gActorList[ferry->actorIndex];
+ ferryActor->pos[0] = ferry->position[0];
+ ferryActor->pos[1] = ferry->position[1];
+ ferryActor->pos[2] = ferry->position[2];
if (gIsMirrorMode != 0) {
- temp_v0_3->rot[1] = -var_s0->yRotation;
+ ferryActor->rot[1] = -ferry->rotY;
} else {
- temp_v0_3->rot[1] = var_s0->yRotation;
+ ferryActor->rot[1] = ferry->rotY;
}
- temp_v0_3->velocity[0] = var_s0->velocity[0];
- temp_v0_3->velocity[1] = var_s0->velocity[1];
- temp_v0_3->velocity[2] = var_s0->velocity[2];
+ ferryActor->velocity[0] = ferry->velocity[0];
+ ferryActor->velocity[1] = ferry->velocity[1];
+ ferryActor->velocity[2] = ferry->velocity[2];
}
- var_s3 += 1;
- var_s0 += 0x2C;
- } while (var_s3 != 1);
+ }
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800133C4.s")
-#endif
void func_80013854(Player *player) {
s32 someIndex;
@@ -5705,7 +5513,7 @@ void func_80013854(Player *player) {
playerY = player->pos[1];
playerZ = player->pos[2];
for (someIndex = 0; someIndex < NUM_PADDLE_WHEEL_BOATS; someIndex++) {
- tempPaddleWheelBoat = &D_801637C0[someIndex];
+ tempPaddleWheelBoat = &gFerries[someIndex];
if (tempPaddleWheelBoat->isActive == 1) {
x_diff = playerX - tempPaddleWheelBoat->position[0];
y_diff = playerY - tempPaddleWheelBoat->position[1];
@@ -5743,7 +5551,7 @@ void func_800139E4(f32 arg0, f32 arg1, s32 arg2, s32 arg3, VehicleStuff *vehicle
veh->velocity[2] = 0.0f;
veh->someFlags = 0;
veh->someFlagsTheSequel = 0;
- if (gModeSelection == 1) {
+ if (gModeSelection == TIME_TRIALS) {
veh->someType = (i % 3);
} else {
veh->someType = random_int(3);
@@ -5862,168 +5670,140 @@ void func_80013D20(VehicleStuff *vehicle) {
vehicleActor->velocity[2] = vehicle->velocity[2];
}
-#ifdef MIPS_TO_C
-//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-10-2023
-extern ? D_80163270;
-
void func_80013F7C(s32 playerId, Player *player, VehicleStuff *vehicle, f32 arg3, f32 arg4, s32 arg5, u32 arg6) {
- f32 spC4;
- f32 spC0;
- f32 spBC;
- u32 spA8;
- u16 *sp9C;
- f32 *sp84;
- VehicleStuff *var_s0;
f32 temp_f12;
f32 temp_f14;
f32 temp_f22;
- f32 temp_f24;
- f64 temp_f0;
- f64 temp_f0_2;
- f64 temp_f0_3;
- f64 temp_f0_4;
- f64 temp_f0_5;
- f64 temp_f0_6;
- f64 temp_f20;
- s32 temp_s2;
- s32 temp_s7;
- s32 temp_v0_4;
- s32 var_fp;
- s8 temp_v0_3;
- s8 temp_v0_5;
- u16 temp_v0;
- u16 temp_v0_2;
- u16 temp_v1;
- u16 temp_v1_2;
- u16 var_s1;
- u32 var_a2;
+
+ s32 i;
+
+ f32 spC4;
+ f32 spC0;
+ f32 spBC;
- temp_s7 = playerId * 2;
- var_s0 = vehicle;
- if (((D_801631E0[playerId] != 1) || ((temp_v0 = player->type, ((temp_v0 & 0x4000) != 0)) && !(temp_v0 & 0x1000))) && !(player->effects & 0x01000000)) {
+ if (((D_801631E0[playerId] != 1) || ((
+ ((player->type & PLAYER_HUMAN) != 0)) && !(player->type & PLAYER_CPU))) && !(player->effects & 0x01000000)) {
+
spC4 = player->pos[0];
- var_fp = 0;
spC0 = player->pos[1];
spBC = player->pos[2];
- if (arg5 > 0) {
- do {
- temp_f12 = var_s0->position[0];
- temp_f14 = var_s0->position[2];
- temp_f20 = (f64) (spC4 - temp_f12);
- temp_f22 = spC0 - var_s0->position[1];
- temp_f24 = spBC - temp_f14;
- if ((temp_f20 > -100.0) && (temp_f20 < 100.0)) {
- temp_f0 = (f64) temp_f22;
- if ((temp_f0 > -20.0) && (temp_f0 < 20.0)) {
- temp_f0_2 = (f64) temp_f24;
- if ((temp_f0_2 > -100.0) && (temp_f0_2 < 100.0) && (func_80006018(temp_f12, temp_f14, var_s0->velocity[0], var_s0->velocity[2], arg3, arg4, spC4, spBC) == (s32) 1U)) {
+
+ for (i = 0; i < arg5; i++) {
+ temp_f12 = spC4 - vehicle->position[0];
+ temp_f22 = spC0 - vehicle->position[1];
+ temp_f14 = spBC - vehicle->position[2];
+
+ if (((temp_f12) > -100.0) && ((temp_f12) < 100.0)) {
+ if ((temp_f22 > -20.0) && (temp_f22 < 20.0)) {
+
+ if (((temp_f14) > -100.0) && ((temp_f14) < 100.0)) {
+ if (func_80006018(vehicle->position[0], vehicle->position[2], vehicle->velocity[0], vehicle->velocity[2], arg3, arg4, spC4, spBC) == (s32) 1) {
player->statusEffects |= REVERSE_EFFECT;
+ }
}
}
}
- temp_v0_2 = player->type;
- if ((temp_v0_2 & 0x4000) && !(temp_v0_2 & 0x1000)) {
- temp_s2 = 1 << playerId;
- if ((temp_f20 > -300.0) && (temp_f20 < 300.0) && (temp_f0_3 = (f64) temp_f22, (temp_f0_3 > -20.0)) && (temp_f0_3 < 20.0) && (temp_f0_4 = (f64) temp_f24, (temp_f0_4 > -300.0)) && (temp_f0_4 < 300.0)) {
- if ((D_801631C8 > 0) && (var_s0->someFlags == 0)) {
+ if ((player->type & PLAYER_HUMAN) && !(player->type & PLAYER_CPU)) {
+ if (((temp_f12) > -300.0) && ((temp_f12) < 300.0) && (
+ (temp_f22 > -20.0)) && (temp_f22 < 20.0) && (((temp_f14) > -300.0)) && ((temp_f14) < 300.0)) {
+ if ((D_801631C8 > 0) && (vehicle->someFlags == 0)) {
D_801631C8 -= 1;
- var_s0->someFlags |= temp_s2;
- func_800C9D80(var_s0->position, var_s0->velocity, arg6);
+ vehicle->someFlags |= (1 << playerId);
+ func_800C9D80(vehicle->position, vehicle->velocity, arg6);
}
} else {
- temp_v0_3 = var_s0->someFlags;
- if (temp_v0_3 != 0) {
- var_s0->someFlags = temp_v0_3 & ~temp_s2;
- if (var_s0->someFlags == 0) {
+ if (vehicle->someFlags != 0) {
+ vehicle->someFlags &= ~(1 << playerId);
+ if (vehicle->someFlags == 0) {
D_801631C8 += 1;
- func_800C9EF4(var_s0->position, arg6);
+ func_800C9EF4(vehicle->position, arg6);
}
}
}
- if ((temp_f20 > -200.0) && (temp_f20 < 200.0) && (temp_f0_5 = (f64) temp_f22, (temp_f0_5 > -20.0)) && (temp_f0_5 < 20.0) && (temp_f0_6 = (f64) temp_f24, (temp_f0_6 > -200.0)) && (temp_f0_6 < 200.0)) {
- if (!(var_s0->someFlagsTheSequel & temp_s2)) {
- var_s1 = 0;
- switch (D_8016347A) { /* irregular */
+
+ if (((temp_f12) > -200.0) && ((temp_f12) < 200.0) && ((temp_f22 > -20.0)) && (temp_f22 < 20.0) && (
+ ((temp_f14) > -200.0)) && ((temp_f14) < 200.0)) {
+ if (!(vehicle->someFlagsTheSequel & ((1 << playerId)))) {
+
+ s32 var_s1 = 0;
+ u16 path = gWaypointCountByPathIndex[0];
+ s32 t1;
+ s32 t2;
+
+ switch (D_8016347A) {
case 0:
- sp9C = temp_s7 + &D_80163270;
- temp_v0_4 = func_80007BF8(var_s0->waypointIndex, gNearestWaypointByPlayerId[playerId], 0x000AU, 0U, (u16) (s32) *gWaypointCountByPathIndex);
- temp_v1 = *sp9C;
- if ((temp_v1 == 0) && (temp_v0_4 > 0) && (player->unk_094 < var_s0->someMultiplier)) {
+ t1 = func_80007BF8(vehicle->waypointIndex, gNearestWaypointByPlayerId[playerId], 10, 0, path);
+ if ((D_80163270[playerId] == 0) && (t1 > 0) && (player->unk_094 < vehicle->someMultiplier)) {
var_s1 = 1;
}
- if ((temp_v1 == 1) && (temp_v0_4 > 0)) {
+ if ((D_80163270[playerId] == 1) && (t1 > 0)) {
var_s1 = 1;
}
break;
case 1:
- if (func_80007BF8(var_s0->waypointIndex, gNearestWaypointByPlayerId[playerId], 0U, 0x000AU, (u16) (s32) *gWaypointCountByPathIndex) > 0) {
- if (random_int(2U) == 0) {
- temp_v1_2 = *(&D_80163270 + temp_s7);
- if (temp_v1_2 == 0) {
+ t2 = func_80007BF8(vehicle->waypointIndex, gNearestWaypointByPlayerId[playerId], 0, 10, path);
+ if (t2 > 0) {
+ if (random_int(2) == 0) {
+ //temp_v1_2 = D_80163270[playerId];
+ if (D_80163270[playerId] == 0) {
var_s1 = 1;
}
- if ((temp_v1_2 == 1) && (player->unk_094 < var_s0->someMultiplier)) {
+ if ((D_80163270[playerId] == 1) && (player->unk_094 < vehicle->someMultiplier)) {
var_s1 = 1;
}
} else {
- var_s0->someFlagsTheSequel |= temp_s2;
+ vehicle->someFlagsTheSequel |= ((1 << playerId));
}
}
break;
}
if (var_s1 == 1) {
- var_a2 = 0x1901703B;
- sp84 = var_s0->velocity;
- switch (arg6) { /* switch 1; irregular */
- case 0x51018005: /* switch 1 */
- spA8 = 0x1901703B;
+
+ u32 var_a2 = 0x1901703B;
+
+ switch (arg6) {
+ case 0x51018005:
var_a2 = 0x1901703B;
- if (random_int(4U) == 0) {
+ if (random_int(4) == 0) {
var_a2 = 0x1901703C;
}
break;
- case 0x51018002: /* switch 1 */
- if (random_int(2U) != 0) {
+ case 0x51018002:
+ if (random_int(2) != 0) {
var_a2 = 0x1901703D;
} else {
var_a2 = 0x1901703E;
}
break;
- case 0x51018003: /* switch 1 */
- if (random_int(2U) != 0) {
+ case 0x51018003:
+ if (random_int(2) != 0) {
var_a2 = 0x1901703F;
} else {
var_a2 = 0x19017040;
}
break;
- case 0x51018004: /* switch 1 */
- if (random_int(2U) != 0) {
+ case 0x51018004:
+ if (random_int(2) != 0) {
var_a2 = 0x19017041;
} else {
var_a2 = 0x19017042;
}
break;
}
- var_s0->someFlagsTheSequel |= temp_s2;
- func_800C98B8(var_s0->position, sp84, var_a2);
+ vehicle->someFlagsTheSequel |= ((1 << playerId));
+ func_800C98B8(vehicle->position, vehicle->velocity, var_a2);
}
}
} else {
- temp_v0_5 = var_s0->someFlagsTheSequel;
- if (temp_v0_5 & temp_s2) {
- var_s0->someFlagsTheSequel = temp_v0_5 & ~temp_s2;
+ if (vehicle->someFlagsTheSequel & ((1 << playerId))) {
+ vehicle->someFlagsTheSequel &= ~((1 << playerId));
}
}
}
- var_fp += 1;
- var_s0 += 0x34;
- } while (var_fp != arg5);
- }
+ vehicle++;
+ }
}
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80013F7C.s")
-#endif
f32 func_800145A8(s16 arg0, f32 arg1, s16 arg2) {
if (arg2 < 0x28A) {
@@ -6208,47 +5988,43 @@ 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 MIPS_TO_C
+#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_80163238;
+//extern ? D_80164680;
+//extern ? D_801646C0;
extern s32 D_801646C8;
-extern ? D_801646D0;
-void func_80014DE4(s32 arg0) {
- s16 *temp_v1;
- s16 temp_a2;
- s32 temp_v0;
- void *temp_a2_2;
- temp_v0 = arg0 * 2;
+
+extern UnkStruct_46D0 D_801646D0[]; // size of 8
+
+void func_80014DE4(s32 arg0) {
+ UnkStruct_46D0 *temp_v1;
+ // s32 temp_v0;
+ //temp_v0 = arg0 * 2;
D_801646CC = 0;
- temp_v1 = &D_80164678[arg0];
- *temp_v1 = D_80164670[arg0];
+ D_80164678[arg0] = D_80164670[arg0];
if ((gModeSelection != 1) && ((gCupCourseSelection == 0) || (gDemoMode == (u16) 1))) {
- goto block_8;
- }
- temp_a2 = *temp_v1;
- if ((temp_a2 != 0) && (temp_a2 != (s16) 1) && (temp_a2 != 2) && (temp_a2 != 3)) {
-block_8:
- *temp_v1 = 0;
+ D_80164678[arg0] = 0;
+ } else if ((D_80164678[arg0] != 0) && (D_80164678[arg0] != (s16) 1) && (D_80164678[arg0] != 2) && (D_80164678[arg0] != 3)) {
+ D_80164678[arg0] = 0;
}
- *(&D_80164680 + temp_v0) = -1;
+ D_80164680[arg0] = -1;
D_80163238 = 0;
- *(&D_801646C0 + temp_v0) = 0;
+ D_801646C0[arg0] = 0;
D_801646C8 = 0;
- temp_a2_2 = (arg0 * 8) + &D_801646D0;
- temp_a2_2->unk0 = 0;
- temp_a2_2->unk2 = 0;
- temp_a2_2->unk4 = 0;
+ temp_v1 = &D_801646D0[arg0];
+ temp_v1->unk0 = 0;
+ temp_v1->unk2 = 0;
+ temp_v1->unk4 = 0;
if ((gModeSelection == 1) && (D_8018EDFC == 0)) {
- *temp_v1 = 0;
+ D_80164678[arg0] = 0;
+ }
+
+ for (i = 0 ; i < i++) {
+ gNearestWaypointByCameraId[i] = 0;
}
- *gNearestWaypointByCameraId = 0;
- *gNearestWaypointByCameraId = 0;
- *gNearestWaypointByCameraId = 0;
- *gNearestWaypointByCameraId = 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014DE4.s")
@@ -6461,21 +6237,13 @@ void func_80015544(s32 playerId, f32 arg1, s32 cameraId, s32 pathIndex) {
void func_8001577C(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) {
s16 cameraWaypoint;
s16 playerWaypoint;
- s32 stackPadding0;
+ UNUSED s32 pad;
f32 xdiff;
f32 ydiff;
f32 zdiff;
- s32 stackPadding1;
+ UNUSED s32 pad2;
s32 playerId;
- s32 stackPadding2;
- s32 stackPadding3;
- s32 stackPadding4;
- s32 stackPadding5;
- s32 stackPadding6;
- s32 stackPadding7;
- s32 stackPadding8;
- s32 stackPadding9;
- s32 stackPaddingA;
+ s32 pad3[9];
Player *player;
s32 waypointDiff;
s32 pathIndex;
@@ -7184,7 +6952,7 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80017054.s")
void func_80017720(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) {
Camera* camera = cameras + cameraId;
- s32 pad;
+ UNUSED s32 pad;
D_80164688[cameraId] = D_80163068[playerId];
gNearestWaypointByCameraId[cameraId] = gNearestWaypointByPlayerId[playerId] + 3;
@@ -7817,22 +7585,13 @@ void func_80019118(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) {
void func_8001933C(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) {
s16 cameraWaypoint;
s16 playerWaypoint;
- s32 stackPadding0;
+ UNUSED s32 pad;
f32 xdiff;
f32 ydiff;
f32 zdiff;
- s32 stackPadding1;
+ UNUSED s32 pad2;
s32 playerId;
- s32 stackPadding4;
- s32 stackPadding5;
- s32 stackPadding6;
- s32 stackPadding7;
- s32 stackPadding8;
- s32 stackPadding9;
- s32 stackPaddingA;
- s32 stackPaddingB;
- s32 stackPaddingC;
- s32 stackPaddingD;
+ UNUSED s32 pad3[10];
Player *player;
TrackWaypoint *waypoint;
s32 pathIndex;
@@ -7891,7 +7650,7 @@ void func_8001969C(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) {
}
void func_80019760(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) {
- s32 stackPadding[2];
+ UNUSED s32 pad[2];
f32 xdiff;
f32 ydiff;
f32 zdiff;
@@ -8081,7 +7840,7 @@ void func_80019E58(void) {
func_80019890(0, 0);
D_80164670[0] = D_80164678[0];
D_80164678[0] = 1;
- D_80164682 = 9;
+ D_80164680[1] = 9;
func_80019890(0, 1);
D_80164670[1] = D_80164678[1];
D_80164678[1] = 0;
@@ -8221,7 +7980,7 @@ s32 func_8001A310(s32 arg0, s32 arg1) {
}
void func_8001A348(s32 cameraId, f32 arg1, s32 arg2) {
- s32 stackPadding;
+ UNUSED s32 pad;
s32 playerId;
playerId = cameras[cameraId].playerId;
diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h
index 447dc11a1..a7e6f1a89 100644
--- a/src/code_80005FD0.h
+++ b/src/code_80005FD0.h
@@ -49,6 +49,14 @@ typedef struct {
extern D_801642D8_entry D_801642D8[];
+typedef struct {
+ u16 unk0;
+ u16 unk2;
+ u16 unk4;
+ u16 unk6;
+} UnkStruct_46D0;
+
+
/* Function Prototypes */
void func_80012190(void);
void func_8000BA14(u16, f32, f32, s16);
@@ -128,12 +136,16 @@ void func_800107C4(s32);
s16 func_80010CB0(s32, s32);
void func_80010DBC(s32);
void func_80010E6C(s32);
-f32 func_80010F40(f32, f32, f32, s32);
-f32 func_80010FA0(f32, f32, f32, s32);
+f32 func_80010F40(f32, f32, f32, s32, s32);
+f32 func_80010FA0(f32, f32, f32, s32, s32);
-u16 func_80011014(TrackWaypoint *, TrackWaypoint *, s32, s32);
+s32 func_80011014(TrackWaypoint *, TrackWaypoint *, s32, s32);
s32 process_path_data(TrackWaypoint*, TrackWaypoint*);
-s32 func_8001168C(void*, void*, s32);
+typedef struct {
+ s16 x;
+ s16 z;
+} PathNoY;
+s32 func_8001168C(PathNoY*, TrackWaypoint*, s32);
void func_80011A5C(void);
void func_80011AB8(s32);
void func_80011AE4(s32);
@@ -232,13 +244,73 @@ extern s16 D_8016347A;
// Suspected to be the "width" of each waypoint. See data_0DD0A0_1.s
extern f32 D_800DCA4C[];
+struct _struct_D_800DD9D0_0x10 {
+ /* 0x00 */ u16 unk0;
+ /* 0x02 */ u16 unk2;
+ /* 0x04 */ u16 unk4;
+ /* 0x06 */ u16 unk6;
+ /* 0x08 */ u16 unk8;
+ /* 0x0A */ char padA[6];
+}; // size 0x10
+extern uintptr_t *D_80163598;
+
+extern uintptr_t gCoursePathTable[20][4];
+extern uintptr_t D_800DC8D0[20][4];
+// An array of 21 items. The final element is for podium ceremony.
+extern struct _struct_D_800DD9D0_0x10 D_800DD9D0[];
+extern s16 D_80162F10[];
+extern s16 D_80162F50[];
+extern s16 D_80162FF8[];
+extern s16 D_80163010[];
+extern f32 D_80163028[];
+extern s16 D_80163050[];
+extern f32 D_80163090[];
+extern u16 D_80163258[];
+extern u16 D_80163270[];
+extern s16 D_80163346[];
+extern s32 D_801630B8[];
+extern s16 D_801630E8[];
+extern s32 D_80163100[];
+extern s32 D_80163128[];
+extern s32 D_80163150[];
+extern f32 D_80163178[];
+extern f32 D_801631A0[];
+extern s32 D_801631CC;
+extern s16 D_801631F8[];
+extern f32 D_80163210[];
+extern s32 D_80163288[];
+extern u16 D_80163330[]; // static?
+extern u16 D_80163344[];
+extern u16 D_8016334C[];
+extern s16 D_80163350[];
+extern s32 D_80163378;
+extern s16 D_80163380[];
+extern s16 D_80163398[];
+extern s16 D_801633B0[];
+extern s16 D_801633C8[];
+extern s16 D_801633F8[];
+extern f32 D_80163450[];
+extern s16 D_801634C0[];
+extern s16 D_801634EC;
+extern s32 D_801634F0;
+extern s32 D_801634F4;
+extern s16 D_80164358;
+extern s16 D_8016435A;
+extern s16 D_8016435C;
+extern s16 D_80164538[];
+extern f32 D_80164698;
+extern f32 D_8016469C;
+extern f32 D_801646A0;
+extern f32 D_800DCAA0[];
+
+
// See bss_80005FD0.s
extern Collision D_80162E70;
extern s16 D_80162EB0;
extern s16 D_80162FCC;
extern f32 D_80162FA0[];
extern f32 gCourseCompletionPercentByRank[8]; // D_80162FD8
-
+extern u16 D_80163348[];
extern s16 D_80164378[];
extern s32 D_801643E0[];
extern struct unexpiredActors gUnexpiredActorsList[];
@@ -258,11 +330,7 @@ extern s16 D_80164672;
extern s16 D_80164674;
extern s16 D_80164676;
extern s16 D_80164678[]; // Size 4? Is the three below this fake?
-extern s16 D_8016467A;
-extern s16 D_8016467C;
-extern s16 D_8016467E;
extern s16 D_80164680[];
-extern s16 D_80164682;
extern f32 D_80164688[];
extern s16 D_801646C0[];
extern s16 D_801646CC;