From f75460cb8bb193f76ae2d99afa93e1ea0b26aa2c Mon Sep 17 00:00:00 2001 From: MegaMech Date: Tue, 7 Nov 2023 20:17:28 -0700 Subject: [PATCH] Matches in code_80005D0 (#487) * Variety of matches --- asm/bss_MainSeg.s | 4 +- .../code_80005FD0/func_80011014.s | 412 ------ .../code_80005FD0/func_8001168C.s | 266 ---- .../code_80005FD0/func_800133C4.s | 332 ----- .../code_80005FD0/func_80013F7C.s | 441 ------ .../code_80005FD0/func_80019DF4.s | 12 +- include/vehicles.h | 6 +- src/camera.c | 10 +- src/code_80005FD0.c | 1229 +++++++---------- src/code_80005FD0.h | 86 +- 10 files changed, 587 insertions(+), 2211 deletions(-) delete mode 100644 asm/non_matchings/code_80005FD0/func_80011014.s delete mode 100644 asm/non_matchings/code_80005FD0/func_8001168C.s delete mode 100644 asm/non_matchings/code_80005FD0/func_800133C4.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80013F7C.s 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; - s32 var_s0; - s32 var_s3; - TrackWaypoint *temp_a0; - TrackWaypoint *temp_v0; - TrackWaypoint *temp_v1; - TrackWaypoint *var_s1; + f32 temp_f22; + f32 temp_f16; + s32 i; - temp_f22 = (f32) arg1->posZ; + f32 j; + s32 var_s0; + f32 var_f28; + + 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); - } 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); + 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; } - 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 14: + if ((var_s0 >= 1140) && (var_s0 <= 1152)) { 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; + case 18: + if ((var_s0 > 204) && (var_s0 < 220)) { + var_f20_2 = var_f28; + } else { + if (var_f20_2 < (var_f28 - 10.0)) { + var_f20_2 = (f32) (var_f28 - 4.0); + } + } + 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; - f32 temp_f24; - f32 temp_f26; - f32 temp_f2; - f32 temp_f2_2; - 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; + s32 pad; - 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); + f32 x1; + f32 z1; + f32 x2; + f32 z2; + f32 x3; + f32 z3; + + + s32 pad2; + f32 temp_f24; + + f32 spA8; + f32 temp_f26; + f32 spA0; + + f32 temp_f2_3; + + 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; } - phi_s2 = temp_s5; - phi_s1 = phi_s1_2; - phi_s1_3 = phi_s1_2; - } while (temp_s5 != arg2); + } } - return phi_s1; + 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); + 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(0x0064U) == 0) { - temp_s1 = var_s0->velocity; - if (random_int(2U) == 0) { - func_800C98B8(temp_s2, temp_s1, 0x19018047U); + 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; + 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; } - 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]; + 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; - 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)) { + f32 spC4; + f32 spC0; + f32 spBC; + + 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)) { - D_801631C8 -= 1; - var_s0->someFlags |= temp_s2; - func_800C9D80(var_s0->position, var_s0->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) { - D_801631C8 += 1; - func_800C9EF4(var_s0->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 ((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; + vehicle->someFlags |= (1 << playerId); + func_800C9D80(vehicle->position, vehicle->velocity, arg6); + } + } else { + if (vehicle->someFlags != 0) { + vehicle->someFlags &= ~(1 << playerId); + if (vehicle->someFlags == 0) { + D_801631C8 += 1; + func_800C9EF4(vehicle->position, arg6); + } + } + } + + 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; + + + +extern UnkStruct_46D0 D_801646D0[]; // size of 8 void func_80014DE4(s32 arg0) { - s16 *temp_v1; - s16 temp_a2; - s32 temp_v0; - void *temp_a2_2; - - temp_v0 = arg0 * 2; + 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; + 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; } - temp_a2 = *temp_v1; - if ((temp_a2 != 0) && (temp_a2 != (s16) 1) && (temp_a2 != 2) && (temp_a2 != 3)) { -block_8: - *temp_v1 = 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;