mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-19 06:12:03 -04:00
a8e5c0f212
Introduce waypoint struct, which code_80005FD0 seems to be involved with. Updated several mips_to_c outputs as well. Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
78 lines
3.9 KiB
ArmAsm
78 lines
3.9 KiB
ArmAsm
glabel func_80019760
|
|
/* 01A360 80019760 27BDFFC8 */ addiu $sp, $sp, -0x38
|
|
/* 01A364 80019764 00071080 */ sll $v0, $a3, 2
|
|
/* 01A368 80019768 3C018016 */ lui $at, %hi(D_801645F8)
|
|
/* 01A36C 8001976C 00220821 */ addu $at, $at, $v0
|
|
/* 01A370 80019770 C42445F8 */ lwc1 $f4, %lo(D_801645F8)($at)
|
|
/* 01A374 80019774 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 01A378 80019778 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 01A37C 8001977C AFA5003C */ sw $a1, 0x3c($sp)
|
|
/* 01A380 80019780 AFA60040 */ sw $a2, 0x40($sp)
|
|
/* 01A384 80019784 3C018016 */ lui $at, %hi(D_80164618)
|
|
/* 01A388 80019788 00220821 */ addu $at, $at, $v0
|
|
/* 01A38C 8001978C E4840000 */ swc1 $f4, ($a0)
|
|
/* 01A390 80019790 C4264618 */ lwc1 $f6, %lo(D_80164618)($at)
|
|
/* 01A394 80019794 3C018016 */ lui $at, %hi(D_80164638)
|
|
/* 01A398 80019798 00220821 */ addu $at, $at, $v0
|
|
/* 01A39C 8001979C E4860004 */ swc1 $f6, 4($a0)
|
|
/* 01A3A0 800197A0 C4284638 */ lwc1 $f8, %lo(D_80164638)($at)
|
|
/* 01A3A4 800197A4 00077040 */ sll $t6, $a3, 1
|
|
/* 01A3A8 800197A8 3C0F8016 */ lui $t7, %hi(gNearestWaypointByCameraId) # 0x8016
|
|
/* 01A3AC 800197AC 01EE7821 */ addu $t7, $t7, $t6
|
|
/* 01A3B0 800197B0 E4880008 */ swc1 $f8, 8($a0)
|
|
/* 01A3B4 800197B4 85EF4668 */ lh $t7, %lo(gNearestWaypointByCameraId)($t7) # 0x4668($t7)
|
|
/* 01A3B8 800197B8 3C198016 */ lui $t9, %hi(D_80164550) # $t9, 0x8016
|
|
/* 01A3BC 800197BC 8F394550 */ lw $t9, %lo(D_80164550)($t9)
|
|
/* 01A3C0 800197C0 000FC0C0 */ sll $t8, $t7, 3
|
|
/* 01A3C4 800197C4 00808025 */ move $s0, $a0
|
|
/* 01A3C8 800197C8 03191821 */ addu $v1, $t8, $t9
|
|
/* 01A3CC 800197CC 84680000 */ lh $t0, ($v1)
|
|
/* 01A3D0 800197D0 00002825 */ move $a1, $zero
|
|
/* 01A3D4 800197D4 44885000 */ mtc1 $t0, $f10
|
|
/* 01A3D8 800197D8 00000000 */ nop
|
|
/* 01A3DC 800197DC 46805420 */ cvt.s.w $f16, $f10
|
|
/* 01A3E0 800197E0 E490000C */ swc1 $f16, 0xc($a0)
|
|
/* 01A3E4 800197E4 84690002 */ lh $t1, 2($v1)
|
|
/* 01A3E8 800197E8 44899000 */ mtc1 $t1, $f18
|
|
/* 01A3EC 800197EC 00000000 */ nop
|
|
/* 01A3F0 800197F0 46809120 */ cvt.s.w $f4, $f18
|
|
/* 01A3F4 800197F4 E4840010 */ swc1 $f4, 0x10($a0)
|
|
/* 01A3F8 800197F8 846A0004 */ lh $t2, 4($v1)
|
|
/* 01A3FC 800197FC 448A3000 */ mtc1 $t2, $f6
|
|
/* 01A400 80019800 00000000 */ nop
|
|
/* 01A404 80019804 46803220 */ cvt.s.w $f8, $f6
|
|
/* 01A408 80019808 E4880014 */ swc1 $f8, 0x14($a0)
|
|
/* 01A40C 8001980C 0C00534C */ jal func_80014D30
|
|
/* 01A410 80019810 00E02025 */ move $a0, $a3
|
|
/* 01A414 80019814 C6120010 */ lwc1 $f18, 0x10($s0)
|
|
/* 01A418 80019818 C6040004 */ lwc1 $f4, 4($s0)
|
|
/* 01A41C 8001981C C60A000C */ lwc1 $f10, 0xc($s0)
|
|
/* 01A420 80019820 C6100000 */ lwc1 $f16, ($s0)
|
|
/* 01A424 80019824 46049181 */ sub.s $f6, $f18, $f4
|
|
/* 01A428 80019828 46105301 */ sub.s $f12, $f10, $f16
|
|
/* 01A42C 8001982C E7A60028 */ swc1 $f6, 0x28($sp)
|
|
/* 01A430 80019830 C60A0008 */ lwc1 $f10, 8($s0)
|
|
/* 01A434 80019834 C6080014 */ lwc1 $f8, 0x14($s0)
|
|
/* 01A438 80019838 E7AC002C */ swc1 $f12, 0x2c($sp)
|
|
/* 01A43C 8001983C 460A4381 */ sub.s $f14, $f8, $f10
|
|
/* 01A440 80019840 0C0ADE0C */ jal atan2s
|
|
/* 01A444 80019844 E7AE0024 */ swc1 $f14, 0x24($sp)
|
|
/* 01A448 80019848 C7A0002C */ lwc1 $f0, 0x2c($sp)
|
|
/* 01A44C 8001984C C7AE0024 */ lwc1 $f14, 0x24($sp)
|
|
/* 01A450 80019850 A6020026 */ sh $v0, 0x26($s0)
|
|
/* 01A454 80019854 46000402 */ mul.s $f16, $f0, $f0
|
|
/* 01A458 80019858 00000000 */ nop
|
|
/* 01A45C 8001985C 460E7482 */ mul.s $f18, $f14, $f14
|
|
/* 01A460 80019860 0C033850 */ jal sqrtf
|
|
/* 01A464 80019864 46128300 */ add.s $f12, $f16, $f18
|
|
/* 01A468 80019868 46000306 */ mov.s $f12, $f0
|
|
/* 01A46C 8001986C 0C0ADE0C */ jal atan2s
|
|
/* 01A470 80019870 C7AE0028 */ lwc1 $f14, 0x28($sp)
|
|
/* 01A474 80019874 A6020024 */ sh $v0, 0x24($s0)
|
|
/* 01A478 80019878 A6000028 */ sh $zero, 0x28($s0)
|
|
/* 01A47C 8001987C 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 01A480 80019880 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 01A484 80019884 27BD0038 */ addiu $sp, $sp, 0x38
|
|
/* 01A488 80019888 03E00008 */ jr $ra
|
|
/* 01A48C 8001988C 00000000 */ nop
|